#!/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 }