Clean bash (#16)

Clean up bash for shellcheck
This commit is contained in:
Benjamin Bryan
2016-11-30 20:57:37 -08:00
committed by GitHub
parent 698cae773a
commit 8a4318885a
9 changed files with 133 additions and 114 deletions

View File

@@ -2,6 +2,8 @@ language: bash
sudo: required
os:
- linux
before_script:
- cp ./config.sample config
install:
- ./build/install.sh
script:

View File

@@ -1,2 +1,2 @@
#!/bin/bash
echo bash /opt/arm/identify.sh | at now
echo bash /opt/arm/identify.sh /opt/arm/config | at now

4
config.sample Executable file → Normal file
View File

@@ -1,4 +1,3 @@
#!/bin/bash
# ARM (Automatic Ripping Machine) oonfig file
#################
@@ -92,7 +91,7 @@ IFTTT_EVENT="arm_event"
#use the label of the DVD/CD or else use empty.log
#this is required for udev events where there is no media available
#such as ejecting the drive
if [ -z $ID_FS_LABEL]; then
if [ -z "$ID_FS_LABEL" ]; then
LOGFILE="empty.log"
else
LOGFILE=${ID_FS_LABEL}".log"
@@ -100,3 +99,4 @@ fi
#Set full logfile path
LOG=$LOGPATH$LOGFILE

View File

@@ -1,22 +1,24 @@
#!/bin/bash
#
# Rip Data using DD
source /opt/arm/config
# shellcheck disable=SC1091
# shellcheck source=config
source "$ARM_CONFIG"
{
TIMESTAMP=`date '+%Y%m%d_%H%M%S'`;
DEST=/mnt/media/ARM/${TIMESTAMP}_${ID_FS_LABEL}
mkdir $DEST
TIMESTAMP=$(date '+%Y%m%d_%H%M%S');
DEST="/mnt/media/ARM/${TIMESTAMP}_${ID_FS_LABEL}"
mkdir "$DEST"
FILENAME=${ID_FS_LABEL}_disc.iso
#dd if=/dev/sr0 of=$DEST/$FILENAME
cat /dev/sr0 > $DEST/$FILENAME
cat "$DEVNAME" > "$DEST/$FILENAME"
eject
} >> $LOG
} >> "$LOG"

View File

@@ -48,6 +48,8 @@ def getbluraytitle():
bluray_title = unicodedata.normalize('NFKD', bluray_title).encode('ascii', 'ignore').decode()
bluray_title = bluray_title.replace(' - Blu-rayTM', '')
bluray_title = bluray_title.replace(' - BLU-RAYTM', '')
bluray_title = bluray_title.replace(' - BLU-RAY', '')
bluray_title = bluray_title.replace(' - Blu-ray', '')
return bluray_title + " (" + bluray_year + ")"

View File

@@ -1,42 +1,49 @@
#!/bin/bash
#
source /opt/arm/config
export ARM_CONFIG=$1
echo "$ARM_CONFIG"
# shellcheck source=config
# shellcheck disable=SC1091
source "$ARM_CONFIG"
# Create log dir if needed
mkdir -p $LOGPATH
mkdir -p "$LOGPATH"
#shellcheck disable=SC2094
{
echo "Starting Identify Script..." >> $LOG
echo "Starting Identify Script..." >> "$LOG"
VIDEO_TITLE=""
HAS_NICE_TITLE=""
#Clean up old log files
FILESFOUND=( $(find $LOGPATH -mtime +$LOGLIFE -type f))
echo "Deleting ${#FILESFOUND[@]} old log files:"${FILESFOUND[@]} >> $LOG
find $LOGPATH -mtime +$LOGLIFE -type f -delete
FILESFOUND=( $(find "$LOGPATH" -mtime +"$LOGLIFE" -type f))
echo "Deleting ${#FILESFOUND[@]} old log files: ${FILESFOUND[*]}" >> "$LOG"
find "$LOGPATH" -mtime +"$LOGLIFE" -type f -delete
# Set Home to home folder of user that is setup to run MakeMKV
export HOME="/root/"
# Output UDEV info
udevadm info -q env -n ${DEVNAME} >> $LOG
udevadm info -q env -n "$DEVNAME" >> "$LOG"
if [ $ID_FS_TYPE == "udf" ]; then
echo "identified udf" >> $LOG
echo "found ${ID_FS_LABEL} on ${DEVNAME}" >> $LOG
if [ "$ID_FS_TYPE" == "udf" ]; then
echo "identified udf" >> "$LOG"
echo "found ${ID_FS_LABEL} on ${DEVNAME}" >> "$LOG"
if [ $ARM_CHECK_UDF == true ]; then
if [ "$ARM_CHECK_UDF" == true ]; then
# check to see if this is really a video
mkdir -p /mnt/${DEVNAME}
mount ${DEVNAME} /mnt/${DEVNAME}
mkdir -p /mnt/"$DEVNAME"
mount "$DEVNAME" /mnt/"$DEVNAME"
if [[ -d /mnt/${DEVNAME}/VIDEO_TS || -d /mnt/${DEVNAME}/BDMV ]]; then
echo "identified udf as video" >> $LOG
echo "identified udf as video" >> "$LOG"
if [ $GET_VIDEO_TITLE == true ]; then
if [ "$GET_VIDEO_TITLE" == true ]; then
GET_TITLE_OUTPUT=$(/opt/arm/getmovietitle.py -p "/mnt${DEVNAME}" 2>&1)
GET_TITLE_OUTPUT=$(/opt/arm/getmovietitle.py -p /mnt"${DEVNAME}" 2>&1)
GET_TITLE_RESULT=$?
if [ $GET_TITLE_RESULT = 0 ]; then
@@ -65,35 +72,35 @@ if [ $ID_FS_TYPE == "udf" ]; then
echo "video title is now ${VIDEO_TITLE}"
echo "video type is ${VIDEO_TYPE}"
umount /mnt/${DEVNAME}
/opt/arm/video_rip.sh "$VIDEO_TITLE" "$HAS_NICE_TITLE" "$VIDEO_TYPE" $LOG
umount "/mnt/$DEVNAME"
/opt/arm/video_rip.sh "$VIDEO_TITLE" "$HAS_NICE_TITLE" "$VIDEO_TYPE" "$LOG"
else
umount /mnt/${DEVNAME}
echo "identified udf as data" >> $LOG
/opt/arm/data_rip.sh $LOG
eject $DEVNAME
umount "/mnt/$DEVNAME"
echo "identified udf as data" >> "$LOG"
/opt/arm/data_rip.sh
eject "$DEVNAME"
fi
else
echo "ARM_CHECK_UDF is false, assuming udf is video" >> $LOG
/opt/arm/video_rip.sh $LOG
echo "ARM_CHECK_UDF is false, assuming udf is video" >> "$LOG"
/opt/arm/video_rip.sh "$LOG"
fi
elif (($ID_CDROM_MEDIA_TRACK_COUNT_AUDIO > 0 )); then
echo "identified audio" >> $LOG
abcde -d $DEVNAME
elif (("$ID_CDROM_MEDIA_TRACK_COUNT_AUDIO" > 0 )); then
echo "identified audio" >> "$LOG"
abcde -d "$DEVNAME"
elif [ $ID_FS_TYPE == "iso9660" ]; then
echo "identified data" >> $LOG
/opt/arm/data_rip.sh $LOG
eject $DEVNAME
elif [ "$ID_FS_TYPE" == "iso9660" ]; then
echo "identified data" >> "$LOG"
/opt/arm/data_rip.sh "$LOG"
eject "$DEVNAME"
else
echo "unable to identify" >> $LOG
echo $ID_CDROM_MEDIA_TRACK_COUNT_AUDIO >> $LOG
echo $ID_FS_TYPE >> $LOG
eject $DEVNAME
echo "unable to identify"
echo "$ID_CDROM_MEDIA_TRACK_COUNT_AUDIO" >> "$LOG"
echo "$ID_FS_TYPE" >> "$LOG"
eject "$DEVNAME"
fi
} >> $LOG
} >> "$LOG"

View File

@@ -1,28 +1,30 @@
#!/bin/bash
source /opt/arm/config
# shellcheck source=config
# shellcheck disable=SC1091
source "$ARM_CONFIG"
MSG=$1
{
#Notification via pushbullet
#Trigger onl if variable is set
if [ -z "$PB_KEY" ]; then
echo "Pushbullet notifications not enabled" >> $LOG
echo "Pushbullet notifications not enabled" >> "$LOG"
else
echo "Sending Pushbullet notification" >> $LOG
curl -s -u $PB_KEY: https://api.pushbullet.com/v2/pushes -d type=note -d title="Alert" -d body="$MSG"
echo "Pushbullet notification sent" >> $LOG
echo "Sending Pushbullet notification" >> "$LOG"
curl -s -u "$PB_KEY": https://api.pushbullet.com/v2/pushes -d type=note -d title="Alert" -d body="$MSG"
echo "Pushbullet notification sent" >> "$LOG"
fi
#Notification via IFTTT
#Trigger only if variable is set
if [ -z "$IFTTT_KEY" ]; then
echo "IFTTT notifications not enabled" >> $LOG
echo "IFTTT notifications not enabled" >> "$LOG"
else
echo "Sending IFTTT notification" >> $LOG
curl -s -X POST -H "Content-Type: application/json" -d '{"value1":"'"$MSG"'"}' https://maker.ifttt.com/trigger/${IFTTT_EVENT}/with/key/${IFTTT_KEY}
printf "\nIFTTT notification sent" >> $LOG
echo "Sending IFTTT notification" >> "$LOG"
curl -s -X POST -H "Content-Type: application/json" -d '{"value1":"'"$MSG"'"}' https://maker.ifttt.com/trigger/"$IFTTT_EVENT"/with/key/"$IFTTT_KEY"
printf "\nIFTTT notification sent" >> "$LOG"
fi
} >> $LOG
} >> "$LOG"

View File

@@ -1,8 +1,9 @@
#!/bin/bash
#
# Rip video using MakeMKV then eject and call transcode script
source /opt/arm/config
# shellcheck source=config
# shellcheck disable=SC1091
source "$ARM_CONFIG"
VIDEO_TITLE=$1
HAS_NICE_TITLE=$2
@@ -11,46 +12,46 @@ VIDEO_TYPE=$3
{
echo "Video Title is ${VIDEO_TITLE}"
echo "Ripping video ${ID_FS_LABEL} from ${DEVNAME}" >> $LOG
TIMESTAMP=`date '+%Y%m%d_%H%M%S'`;
DEST=${RAWPATH}/${VIDEO_TITLE}_${TIMESTAMP}
echo "Ripping video ${ID_FS_LABEL} from ${DEVNAME}" >> "$LOG"
TIMESTAMP=$(date '+%Y%m%d_%H%M%S');
DEST="${RAWPATH}/${VIDEO_TITLE}_${TIMESTAMP}"
RIPSTART=$(date +%s);
mkdir "$DEST"
#echo /opt/arm/video_transcode.sh \"$DEST\" \"$VIDEO_TITLE\" $TIMESTAMP >> $LOG
if [ $RIPMETHOD = "backup" ] && [ $ID_CDROM_MEDIA_BD = "1" ]; then
echo "Using backup method of ripping." >> $LOG
if [ "$RIPMETHOD" = "backup" ] && [ "$ID_CDROM_MEDIA_BD" = "1" ]; then
echo "Using backup method of ripping." >> "$LOG"
DISC="${DEVNAME: -1}"
echo "Sending command: "makemkvcon backup --decrypt -r disc:"$DISC" \""$DEST"/""\"
makemkvcon backup --decrypt -r disc:$DISC $DEST/
eject $DEVNAME
elif [ $MAINFEATURE = true ] && [ $ID_CDROM_MEDIA_DVD = "1" ] && [ -z $ID_CDROM_MEDIA_BD ]; then
echo "Media is DVD and Main Feature parameter in config file is true. Bypassing MakeMKV." >> $LOG
echo "Sending command: makemkvcon backup --decrypt -r disc:$DISC $DEST"
makemkvcon backup --decrypt -r disc:"$DISC" "$DEST"/
eject "$DEVNAME"
elif [ "$MAINFEATURE" = true ] && [ "$ID_CDROM_MEDIA_DVD" = "1" ] && [ -z "$ID_CDROM_MEDIA_BD" ]; then
echo "Media is DVD and Main Feature parameter in config file is true. Bypassing MakeMKV." >> "$LOG"
# rmdir "$DEST"
echo "DEST is ${DEST}"
else
echo "Using mkv method of ripping." >> $LOG
makemkvcon mkv dev:$DEVNAME all "$DEST" --minlength=$MINLENGTH -r
eject $DEVNAME
echo "Using mkv method of ripping." >> "$LOG"
makemkvcon mkv dev:"$DEVNAME" all "$DEST" --minlength="$MINLENGTH" -r
eject "$DEVNAME"
fi
RIPEND=$(date +%s);
RIPSEC=$(($RIPEND-$RIPSTART));
RIPTIME="$(($RIPSEC / 3600)) hours, $((($RIPSEC / 60) % 60)) minutes and $(($RIPSEC % 60)) seconds."
RIPSEC=$((RIPEND-RIPSTART));
RIPTIME="$((RIPSEC / 3600)) hours, $(((RIPSEC / 60) % 60)) minutes and $((RIPSEC % 60)) seconds."
#eject $DEVNAME
#echo /opt/arm/notify.sh "\"Ripped: ${ID_FS_LABEL} completed from ${DEVNAME} in ${RIPTIME}\"" |at now
echo "STAT: ${ID_FS_LABEL} ripped in ${RIPTIME}" >> $LOG
echo "STAT: ${ID_FS_LABEL} ripped in ${RIPTIME}" >> "$LOG"
echo /opt/arm/video_transcode.sh \"$DEST\" \"$VIDEO_TITLE\" \"$HAS_NICE_TITLE\" \"$VIDEO_TYPE\" $TIMESTAMP >> $LOG
echo /opt/arm/video_transcode.sh \"$DEST\" \"$VIDEO_TITLE\" \"$HAS_NICE_TITLE\" \"$VIDEO_TYPE\" $TIMESTAMP | batch
echo "/opt/arm/video_transcode.sh \"$DEST\" \"$VIDEO_TITLE\" \"$HAS_NICE_TITLE\" \"$VIDEO_TYPE\" $TIMESTAMP"
echo "/opt/arm/video_transcode.sh \"$DEST\" \"$VIDEO_TITLE\" \"$HAS_NICE_TITLE\" \"$VIDEO_TYPE\" \"$TIMESTAMP\"" | batch
echo "${ID_FS_LABEL} sent to transcoding queue..." >> $LOG
echo "${ID_FS_LABEL} sent to transcoding queue..." >> "$LOG"
} >> $LOG
} >> "$LOG"

View File

@@ -1,7 +1,9 @@
#!/bin/bash
# Transcodes Video files using HandBrake and removes source files when done
source /opt/arm/config
# shellcheck source=config
# shellcheck disable=SC1091
source "$ARM_CONFIG"
SRC=$1
LABEL=$2
@@ -11,72 +13,73 @@ TIMESTAMP=$5
TRANSSTART=$(date +%s);
echo "Start video transcoding script" >> $LOG
echo "Start video transcoding script" >> "$LOG"
if [ "$HAS_NICE_TITLE" = true ]; then
echo "transcoding with a nice title" >> $LOG
echo "transcoding with a nice title" >> "$LOG"
DEST="${ARMPATH}/${LABEL}"
echo "dest ${DEST} variable created"
if [ -d "$DEST" ]; then
echo "directory already exists... adding timestamp" >> $LOG
echo "directory already exists... adding timestamp" >> "$LOG"
DEST="${ARMPATH}/${LABEL}_${TIMESTAMP}"
fi
else
echo "transcoding without a nice title" >> $LOG
echo "transcoding without a nice title" >> "$LOG"
DEST="${ARMPATH}/${LABEL}_${TIMESTAMP}"
fi
# DEST="${ARMPATH}/${LABEL}_${TIMESTAMP}"
mkdir "$DEST"
if [ $RIPMETHOD = "backup" ] && [ "$MAINFEATURE" = true ] && [ $ID_CDROM_MEDIA_BD = "1" ]; then
echo "Transcoding BluRay main feature only." >> $LOG
$HANDBRAKE_CLI -i $SRC -o "$DEST/$LABEL.$DEST_EXT" --main-feature --preset="$HB_PRESET" --subtitle scan -F 2>> $LOG
rmdir -rf $SRC
elif [ $RIPMETHOD = "backup" ] && [ "$MAINFEATURE" = false ] && [ $ID_CDROM_MEDIA_BD = "1" ]; then
echo "Transcoding BluRay all titles above minlength." >> $LOG
$HANDBRAKE_CLI -i $SRC -o "$DEST/$LABEL.$DEST_EXT" --min-duration $MINLENGTH --preset="$HB_PRESET" --subtitle scan -F 2>> $LOG
rmdir -rf $SRC
elif [ $MAINFEATURE = true ] && [ $ID_CDROM_MEDIA_DVD = "1" ]; then
echo "Transcoding DVD main feature only." >> $LOG
if [ "$RIPMETHOD" = "backup" ] && [ "$MAINFEATURE" = true ] && [ "$ID_CDROM_MEDIA_BD" = "1" ]; then
echo "Transcoding BluRay main feature only." >> "$LOG"
$HANDBRAKE_CLI -i "$SRC" -o "$DEST/$LABEL.$DEST_EXT" --main-feature --preset="$HB_PRESET" --subtitle scan -F 2>> "$LOG"
rmdir -rf "$SRC"
elif [ "$RIPMETHOD" = "backup" ] && [ "$MAINFEATURE" = false ] && [ "$ID_CDROM_MEDIA_BD" = "1" ]; then
echo "Transcoding BluRay all titles above minlength." >> "$LOG"
$HANDBRAKE_CLI -i "$SRC" -o "$DEST/$LABEL.$DEST_EXT" --min-duration "$MINLENGTH" --preset="$HB_PRESET" --subtitle scan -F 2>> "$LOG"
rmdir -rf "$SRC"
elif [ "$MAINFEATURE" = true ] && [ "$ID_CDROM_MEDIA_DVD" = "1" ]; then
echo "Transcoding DVD main feature only." >> "$LOG"
# echo "$HANDBRAKE_CLI -i $DEVNAME -o \"${DEST}/${LABEL}.${DEST_EXT}\" --main-feature --preset="${HB_PRESET}" --subtitle scan -F 2" >> $LOG
$HANDBRAKE_CLI -i $DEVNAME -o "${DEST}/${LABEL}.${DEST_EXT}" --main-feature --preset="${HB_PRESET}" --subtitle scan -F 2>> $LOG
$HANDBRAKE_CLI -i "$DEVNAME" -o "${DEST}/${LABEL}.${DEST_EXT}" --main-feature --preset="${HB_PRESET}" --subtitle scan -F 2>> "$LOG"
# $HANDBRAKE_CLI -i $DEVNAME -o "${DEST}/${LABEL}.${DEST_EXT}" --main-feature --preset="${HB_PRESET}">> $LOG
eject $DEVNAME
eject "$DEVNAME"
else
echo "Transcoding all files." >> $LOG
for FILE in `ls $SRC`
echo "Transcoding all files." >> "$LOG"
# shellcheck disable=SC2045
for FILE in $(ls "$SRC")
do
filename=$(basename $FILE)
filename=$(basename "$FILE")
extension=${filename##*.}
#extension=${filename##*.}
filename=${filename%.*}
echo "Transcoding file $FILE" >> $LOG
$HANDBRAKE_CLI -i "$SRC/$FILE" -o "$DEST/$filename.$DEST_EXT" --preset="$HB_PRESET" --subtitle scan -F 2>> $LOG
rm "$SRC"/"$FILE"
echo "Transcoding file $FILE" >> "$LOG"
$HANDBRAKE_CLI -i "$SRC/$FILE" -o "$DEST/$filename.$DEST_EXT" --preset="$HB_PRESET" --subtitle scan -F 2>> "$LOG"
rm "$SRC/$FILE"
done
rmdir $SRC
rmdir "$SRC"
fi
if [ $VIDEO_TYPE = "movie" ] && [ $MAINFEATURE = true ] && [ $HAS_NICE_TITLE = true ]; then
echo "checing for existing file" >> $LOG
if [ "$VIDEO_TYPE" = "movie" ] && [ "$MAINFEATURE" = true ] && [ "$HAS_NICE_TITLE" = true ]; then
echo "checing for existing file" >> "$LOG"
if [ ! -f "$MEDIA_DIR/$LABEL.$DEST_EXT" ]; then
echo "No file found. Moving \"$DEST/$LABEL.$DEST_EXT to $MEDIA_DIR/$LABEL.$DEST_EXT\"" >> $LOG
echo "No file found. Moving \"$DEST/$LABEL.$DEST_EXT to $MEDIA_DIR/$LABEL.$DEST_EXT\"" >> "$LOG"
mv -n "$DEST/$LABEL.$DEST_EXT" "$MEDIA_DIR/$LABEL.$DEST_EXT"
else
echo "Warning: $MEDIA_DIR/$LABEL.$DEST_EXT File exists! File moving aborted" >> $LOG
echo "Warning: $MEDIA_DIR/$LABEL.$DEST_EXT File exists! File moving aborted" >> "$LOG"
fi
else
echo "Nothing here..." >> $LOG
echo "Nothing here..." >> "$LOG"
fi
rmdir -rf $SRC
rmdir -rf "$SRC"
TRANSEND=$(date +%s);
TRANSSEC=$(($TRANSEND-$TRANSSTART));
TRANSTIME="$(($TRANSSEC / 3600)) hours, $((($TRANSSEC / 60) % 60)) minutes and $(($TRANSSEC % 60)) seconds."
TRANSSEC=$((TRANSEND-TRANSSTART));
TRANSTIME="$((TRANSSEC / 3600)) hours, $(((TRANSSEC / 60) % 60)) minutes and $((TRANSSEC % 60)) seconds."
echo "STAT: ${ID_FS_LABEL} transcoded in ${TRANSTIME}" >> $LOG
echo "STAT: ${ID_FS_LABEL} transcoded in ${TRANSTIME}" >> "$LOG"
#echo /opt/arm/rename.sh $DEST