66 lines
1.4 KiB
Bash
66 lines
1.4 KiB
Bash
#!/bin/bash
|
|
cleaner() {
|
|
for key in ${!failedtasks[@]}
|
|
do
|
|
taskid=${failedtasks[key]}
|
|
gettaskinfos $taskid
|
|
faildepends=$(
|
|
Select tasks 'COUNT(*)' <<-EOWhere
|
|
requires = $taskid
|
|
EOWhere
|
|
)
|
|
(( failed+=faildepends ))
|
|
Update tasks status 2 <<<"id = $taskid"
|
|
Update tasks status 2 <<<"requires = $taskid"
|
|
echo "SELECT COUNT(*)
|
|
FROM tasks
|
|
WHERE ( status = 0 OR status = 1 )
|
|
AND required = $taskid;">&3
|
|
read -u4 count
|
|
if (( count == 0 ))
|
|
then
|
|
rm -f "$cleanup"
|
|
fi
|
|
unset failedtasks[key]
|
|
done
|
|
for key in ${!finishedtasks[@]}
|
|
do
|
|
taskid=${finishedtasks[key]}
|
|
gettaskinfos $taskid
|
|
if [ -n "$destfilename" ]
|
|
then
|
|
echo \
|
|
"UPDATE destination_files" \
|
|
"SET filename=\"${destfilename//\"/\"\"}\"," \
|
|
" last_change=(" \
|
|
" SELECT last_change" \
|
|
" FROM source_files" \
|
|
" WHERE id=$sourcefileid" \
|
|
" )," \
|
|
" old_filename=(" \
|
|
" SELECT filename" \
|
|
" FROM destination_files" \
|
|
" WHERE id=$destfileid" \
|
|
" )," \
|
|
" rename_pattern=(" \
|
|
" SELECT rename_pattern" \
|
|
" FROM tasks" \
|
|
" WHERE id=$taskid" \
|
|
" )" \
|
|
"WHERE id=$destfileid;" \
|
|
>&3
|
|
fi
|
|
echo "SELECT COUNT(*)
|
|
FROM tasks
|
|
WHERE ( status = 0 OR status = 1 )
|
|
AND required = $taskid;">&3
|
|
read -u4 count
|
|
if (( count == 0 ))
|
|
then
|
|
rm -f "$cleanup"
|
|
fi
|
|
Delete tasks <<<"id = $taskid"
|
|
unset finishedtasks[key]
|
|
done
|
|
}
|