Bunch of enhacements

This commit is contained in:
Vincent Riquer 2025-01-23 00:23:49 +00:00
parent b90d4d553a
commit 8f97e9b0b1
5 changed files with 48 additions and 19 deletions

22
atom
View File

@ -64,6 +64,7 @@ help() {
-c <file> Load configuration file <file> -c <file> Load configuration file <file>
-C Dump configuration and exit -C Dump configuration and exit
-l <load> Override max-load -l <load> Override max-load
-f <workers> Use exactly <workers> child processes
-T <seconds> override load-interval -T <seconds> override load-interval
-F <destination> Force re-generation of all files in -F <destination> Force re-generation of all files in
<destination> <destination>
@ -77,7 +78,7 @@ help() {
#parse arguments #parse arguments
OPTERR=0 OPTERR=0
while getopts ':c:Cl:T:F:B:ShDq' opt while getopts ':c:Cl:T:F:f:B:ShDq' opt
do do
case $opt in case $opt in
c) c)
@ -95,6 +96,9 @@ do
F) F)
forceall+=("$OPTARG") forceall+=("$OPTARG")
;; ;;
f)
fixed_workers="$OPTARG"
;;
B) B)
maxbatch="$OPTARG" maxbatch="$OPTARG"
;; ;;
@ -349,6 +353,7 @@ updateMimes
removeObsoleteFiles removeObsoleteFiles
(( cron )) || echo -n 'Gathering files for cleaning...'
echo ' echo '
SELECT COUNT(id) SELECT COUNT(id)
FROM destination_files FROM destination_files
@ -396,7 +401,7 @@ do
then then
echo 'COMMIT;BEGIN TRANSACTION;' >&3 echo 'COMMIT;BEGIN TRANSACTION;' >&3
fi fi
(( cron )) || echo -en "\rClean obsolete data: $(((deleted+removed)*100/removecount))%" (( cron )) || echo -en "\rClean obsolete data: $(((deleted+removed)*100/removecount))%\033[K"
done done
echo 'COMMIT;' >&3 echo 'COMMIT;' >&3
(( cron )) || echo -n $'\r' (( cron )) || echo -n $'\r'
@ -692,10 +697,21 @@ starttime=$concurrencychange
taskcount=$count taskcount=$count
remaining=$taskcount remaining=$taskcount
failed=0 failed=0
echo 'BEGIN TRANSACTION;' >&3
committime=$(date +%s)
while (( (remaining || ${#workers[@]}) && ! quit )) while (( (remaining || ${#workers[@]}) && ! quit ))
do do
if (( $(date +%s) - committime >= 60 ))
then
echo $'COMMIT;\nBEGIN TRANSACTION;' >&3
committime=$(date +%s)
fi
read humanload garbage < /proc/loadavg read humanload garbage < /proc/loadavg
load=${humanload%.*} load=${humanload%.*}
if (( fixed_workers ))
then
concurrency="$fixed_workers"
else
if [ -z "$quit" ] \ if [ -z "$quit" ] \
&& (( ! pause )) \ && (( ! pause )) \
&& (( $(date +%s)-concurrencychange >= loadinterval )) && (( $(date +%s)-concurrencychange >= loadinterval ))
@ -711,6 +727,7 @@ do
(( ++concurrency )) (( ++concurrency ))
fi fi
fi fi
fi
checkworkers checkworkers
cleaner cleaner
(( pause )) || master (( pause )) || master
@ -789,6 +806,7 @@ do
fi fi
fi fi
done done
echo 'COMMIT;' >&3
unset count unset count
endtime=$(date +%s) endtime=$(date +%s)

View File

@ -22,7 +22,7 @@ encodeFile::opus() {
requires ${soxtaskid:-$decodetaskid} requires ${soxtaskid:-$decodetaskid}
required ${soxtaskid:-$decodetaskid} required ${soxtaskid:-$decodetaskid}
fileid $destfileid fileid $destfileid
filename $destdir/$destfile.ogg filename $destdir/$destfile.opus
$( $(
for key in ${!opusencopts[@]} for key in ${!opusencopts[@]}
do do

View File

@ -3,7 +3,7 @@ getFiles() {
scantime=$(date +%s) scantime=$(date +%s)
for prune_expression in "${skippeddirectories[@]}" for prune_expression in "${skippeddirectories[@]}"
do do
prunes+="-path $sourcepath$prune_expression -prune -o " prunes+=( -path "$sourcepath$prune_expression" -prune -o )
done done
(( cron )) || echo -n "Scanning $sourcepath... " (( cron )) || echo -n "Scanning $sourcepath... "
# We probably have thousands of files, don't waste time on disk writes # We probably have thousands of files, don't waste time on disk writes
@ -56,10 +56,10 @@ getFiles() {
fi fi
progressSpin progressSpin
done < <( done < <(
find "$sourcepath" $prunes -type f -printf "%T@ %s %P\n" find "$sourcepath" "${prunes[@]}" -type f -not -name '.*' -printf "%T@ %s %P\n"
) )
echo 'COMMIT;' >&3 echo 'COMMIT;' >&3
(( cron )) || echo -n $'\r' (( cron )) || echo -n $'\r'
echo "${count:-0} files found, ${new:=0} new or changed." echo "${count:-0} files found, ${new:=0} new or changed."$'\033[K'
unset count unset count
} }

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
getInfosffmpeg_version='ffmpeg-5' getInfosffmpeg_version='ffmpeg-6'
tagreaders+=( "$getInfosffmpeg_version" ) tagreaders+=( "$getInfosffmpeg_version" )
getInfos::ffmpeg() { getInfos::ffmpeg() {
tagreader="$getInfosffmpeg_version" tagreader="$getInfosffmpeg_version"
@ -8,7 +8,8 @@ getInfos::ffmpeg() {
-i "$sourcepath/$filename" 2>&1 \ -i "$sourcepath/$filename" 2>&1 \
|sed ' |sed '
/^Input/,/.* Audio: /{s/ *: */=/} /^Input/,/.* Audio: /{s/ *: */=/}
s/^[[:space:]]*//' s/^[[:space:]]*//
s/\0//g'
) )
local metadata=$( local metadata=$(
echo -e "$allinfos" \ echo -e "$allinfos" \

View File

@ -11,5 +11,15 @@ progressSpin() {
30) echo -n $'\b\\' ;; 30) echo -n $'\b\\' ;;
*) ;; *) ;;
esac esac
if ! (( count % 100 ))
then
echo -n " $count"
until (( backspace > ${#count} ))
do
(( backspace++ ))
echo -n $'\b'
done
unset backspace
fi
fi fi
} }