toys/checkmissing: check for missing files in destinations
Incase files were removed by some other process, or, $DEITY forbids, a bug
This commit is contained in:
parent
095ee262b6
commit
68b0d2f033
88
toys/checkmissing
Executable file
88
toys/checkmissing
Executable file
@ -0,0 +1,88 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# config structures
|
||||||
|
declare -A \
|
||||||
|
destinationchannels \
|
||||||
|
destinationfat32compat \
|
||||||
|
destinationcopymime \
|
||||||
|
destinationformat \
|
||||||
|
destinationfrequency \
|
||||||
|
destinationid \
|
||||||
|
destinationloss \
|
||||||
|
destinationmaxbps \
|
||||||
|
destinationnormalize \
|
||||||
|
destinationpath \
|
||||||
|
destinationquality \
|
||||||
|
destinationrename \
|
||||||
|
destinationnoresample \
|
||||||
|
destinationrenamepath \
|
||||||
|
destinationskipmime \
|
||||||
|
|| {
|
||||||
|
echo "Check your Bash version. You need >= 4.0" >&2
|
||||||
|
exit $EBASHVERS
|
||||||
|
}
|
||||||
|
|
||||||
|
declare -r \
|
||||||
|
DOCDIR=./doc \
|
||||||
|
LIBDIR=./lib \
|
||||||
|
SHAREDIR=./share
|
||||||
|
declare -r \
|
||||||
|
exampleconf=$DOCDIR/example.cfg \
|
||||||
|
schema=$SHAREDIR/schema.sql \
|
||||||
|
\
|
||||||
|
oldIFS="$IFS"
|
||||||
|
|
||||||
|
cffile="$HOME/.atom/atom.cfg"
|
||||||
|
LC_ALL=C
|
||||||
|
|
||||||
|
shopt -s extglob
|
||||||
|
|
||||||
|
for function in "$LIBDIR"/*/*
|
||||||
|
do
|
||||||
|
source "$function"
|
||||||
|
done
|
||||||
|
|
||||||
|
while getopts 'Dr' opt
|
||||||
|
do
|
||||||
|
case $opt in
|
||||||
|
D) (( debug++ )) ;;
|
||||||
|
r) regen=1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
getConfig
|
||||||
|
|
||||||
|
openDatabase
|
||||||
|
|
||||||
|
echo 'SELECT id,filename FROM destination_files WHERE filename IS NOT NULL;' >&3
|
||||||
|
echo 'SELECT "AtOM:NoMoreFiles";' >&3
|
||||||
|
|
||||||
|
read -u4 filename
|
||||||
|
until [[ $filename == AtOM:NoMoreFiles ]]
|
||||||
|
do
|
||||||
|
files+=("$filename")
|
||||||
|
read -u4 filename
|
||||||
|
done
|
||||||
|
|
||||||
|
echo 'BEGIN TRANSACTION;' >&3
|
||||||
|
|
||||||
|
echo -n "Checking for missing files... "
|
||||||
|
for filename in "${files[@]}"
|
||||||
|
do
|
||||||
|
id=${filename%%::AtOM:SQL:Sep::*}
|
||||||
|
filename=${filename#*::AtOM:SQL:Sep::}
|
||||||
|
if ! [ -f "$filename" ]
|
||||||
|
then
|
||||||
|
echo -e "\r$filename\033[K"
|
||||||
|
((regen))&&Update destination_files last_change 0 <<<"id = $id"
|
||||||
|
echo -n "Checking for missing files... "
|
||||||
|
(( missing++ ))
|
||||||
|
fi
|
||||||
|
progressSpin
|
||||||
|
done
|
||||||
|
|
||||||
|
echo 'COMMIT;' >&3
|
||||||
|
|
||||||
|
echo -e "\r${missing:-0} missing files\033[K"
|
||||||
|
|
||||||
|
closeDatabase
|
||||||
Loading…
x
Reference in New Issue
Block a user