### copy to other folder. It works on parallel, you can
### use it in a cluster with Parameter -S.
+MakeSymlinksToWork() {
+ local readonly workdir="$1"
+ local readonly musicdir="$2"
+ local readonly albumlist="$3"
+
+ for i in $(cat "$albumlist"); do
+ cp --recursive --symbolic-link $musicdir/$i $workdir/
+ done
+
+}
+
+ConvertFlacToMp3() {
+ local readonly workdir="$1"
+ local readonly basefile="$2"
+ local readonly paralleopts="$3"
+ local readonly scriptdir="$4"
+
+ find $workdir -name '*.flac' | \
+ sort | \
+ parallel $basefile --will-cite --ungroup --eta --progress --sshlogin $parallelopts $scriptdir/flactomp3v2 {}
+}
+
+CleanupFlacAndCovers() {
+ local readonly workdir="$1"
+
+ find $workdir -name '*.flac' | \
+ sort | \
+ xargs rm
+ find $workdir -name 'cover*' | \
+ sort | \
+ xargs rm
+}
+
+CleanupWorkDir() {
+ local readonly workdir="$1"
+
+ printf "cleanup working directory\n\n"
+ rm --recursive $workdir
+}
+
+CopyWorkDirToDestDir() {
+ local readonly workdir="$1"
+ local readonly destdir="$2"
+
+ mkdir --parents $destdir
+ cp --recursive $workdir/* $destdir
+}
+
+MakeZipFile() {
+ local readonly workdir="$1"
+ local zipname="$2"
+
+ if [[ ! $zipname =~ .zip ]]; then
+ local zipname="${zipname}.zip"
+ fi
+
+ local readonly curpath=$(pwd)
+ cd $workdir
+ 7z a -bd -mmt=off -mm=Copy $curpath/$zipname .
+ cd $curpath
+}
+
+MakeSha256CheckSum() {
+ local readonly workdir="$1"
+
+ find $workdir -name '*.mp3' | \
+ sort | \
+ xargs sha256sum | \
+ sed "s=$workdir/==" \
+ >> $workdir/sha256sum
+}
+
main() {
WORK="$(pwd)/work.$$" # temporary working directory
SCRIPTPATH="/usr/bin" # path to flactomp3v2 and notify.sh script
addInfo "<p>$(cat "$albumlist" | sed 's/$/<br>/')</p>"
# make symlinks of original flac's in working directory
printf "\nPhase %02d of %02d: create symlinks of flac's to working directory %s\n" $((curphase++)) $phase "$WORK"
- for i in $(cat "$albumlist"); do
- cp --recursive --symbolic-link $MUSICPATH/$i $WORK/
- done
+ MakeSymlinksToWork "$WORK" "$MUSICPATH" "$albumlist"
addInfo "<p>"
currentDate
# convert flac to mp3
# it is the longest phase
printf "\nPhase %02d of %02d: flac -> mp3\n" $((curphase++)) $phase
- find $WORK -name '*.flac' | sort | parallel $BASEFILE --will-cite --ungroup --eta --progress --sshlogin $parallelopts $SCRIPTPATH/flactomp3v2 {}
+
+ ConvertFlacToMp3 "$WORK" "$BASEFILE" "$parallelopts" "$SCRIPTPATH"
+
currentDate
addInfo "flac -> mp3 finished</p>"
# removing flac and cover.jpg
printf "\nPhase %02d of %02d: remove flac's and cover's\n\n" $((curphase++)) $phase
- find $WORK -name '*.flac' | sort | xargs rm
- find $WORK -name 'cover*' | sort | xargs rm
+ CleanupFlacAndCovers "$WORK"
# create sha256sum in working directory
if [ $checksum == true ]; then
currentDate
addInfo "create sha256sum is start<br>"
printf "Phase %02d of %02d: create sha256sum\n\n" $((curphase++)) $phase
- find $WORK -name '*.mp3' | sort | xargs sha256sum | sed "s=$WORK/==" >> $WORK/sha256sum
+
+ MakeSha256CheckSum "$WORK"
+
currentDate
addInfo "sha256sum is created</p>"
fi
# content of zipfile is content of working directory
if [ $mkzip == true ]; then
printf "Phase %02d of %02d: create %s\n" $((curphase++)) $phase $zipname
- if [[ ! $zipname =~ .zip ]]; then
- zipname="${zipname}.zip"
- fi
addInfo "<p>"
currentDate
addInfo "create $zipname start<br>"
- curpath=$(pwd)
- cd $WORK
- 7z a -bd -mmt=off -mm=Copy $curpath/$zipname .
- cd $curpath
+
+ MakeZipFile "$WORK" "$zipname"
+
printf "\n"
currentDate
addInfo "$zipname is created</p>"
addInfo "<p>"
currentDate
addInfo "copy from $WORK to $dest start<br>"
- mkdir --parents $dest
- cp --recursive $WORK/* $dest
+
+ CopyWorkDirToDestDir "$WORK" "$dest"
+
currentDate
addInfo "copy from $WORK to $dest finished</p>"
fi
# delete the working directory
if ( [ $mkzip == true ] || [ $cptodest == true ] ) && [ $removework == true ]; then
- printf "cleanup working directory\n\n"
- rm --recursive $WORK
+ CleanupWorkDir "$WORK"
fi
addInfo "<p>"