AtOM/lib/workers/cleaner
2025-02-08 18:36:17 +01:00

72 lines
1.5 KiB
Bash

#!/bin/bash
cleaner() {
local \
key \
faildepends \
taskid \
count
for key in ${!failedtasks[@]}
do
taskid=${failedtasks[key]}
gettaskinfos $taskid
faildepends=$(
Select tasks required_by <<-EOWhere
id = $taskid
EOWhere
)
(( failed+=faildepends ))
(( ran+=faildepends ))
Update tasks status 2 <<<"id = $taskid"
rm -f "$cleanup"
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" \
" )," \
" fat32compat=(" \
" SELECT fat32compat" \
" FROM tasks" \
" WHERE id=$taskid" \
" )," \
" ascii=(" \
" SELECT ascii" \
" FROM tasks" \
" WHERE id=$taskid" \
" )" \
"WHERE id=$destfileid;" \
>&3
fi
count=$(Select tasks required_by <<<"id = $taskid")
if (( count == 0 ))
then
[[ -n "$cleanup" ]] && rm -f "$tempdir/$cleanup"
Delete tasks <<<"id = $taskid"
unset finishedtasks[key]
else
Update tasks status 4 \
<<<"id = $taskid"
fi
done
}