diff --git a/atom b/atom index 9ad81d4..9b4ef85 100755 --- a/atom +++ b/atom @@ -2381,6 +2381,78 @@ do unset count done +echo ' + SELECT + source_files.filename, + source_files.last_change, + destinations.id, + destination_files.id + FROM source_files + INNER JOIN destination_files + ON source_files.id + = destination_files.source_file_id + INNER JOIN destinations + ON destination_files.destination_id=destinations.id + INNER JOIN mime_type_actions + ON mime_type_actions.id = source_files.mime_type + WHERE CAST(destination_files.last_change AS TEXT) + <> CAST(source_files.last_change AS TEXT) + AND mime_type_actions.destination_id = destinations.id + AND mime_type_actions.action = 2; + + SELECT "AtOM:NoMoreFiles";' >&3 +read -u4 line +while ! [[ $line = AtOM:NoMoreFiles ]] +do + copyfiles+=("$line") + read -u4 line +done + +for copyfile in "${copyfiles[@]}" +do + sourcefilename=${copyfile%%|*} + rest="${copyfile#*|}|" + lastchange=${rest%%|*} + rest=${rest#*|} + destinationid=${rest%%|*} + rest=${rest#*|} + destfileid=${rest%%|*} + rest=${rest#*|} + echo 'SELECT IFNULL( ( + SELECT destination_files.filename + FROM destination_files + INNER JOIN source_files + ON destination_files.source_file_id=source_files.id + INNER JOIN mime_type_actions + ON + mime_type_actions.id=source_files.mime_type + INNER JOIN destinations + ON destinations.id=destination_files.destination_id + WHERE destinations.id = '$destinationid' + AND source_files.filename LIKE "'"${sourcefilename%/*}"'/%" + AND mime_type_actions.action = 1 + LIMIT 1 + ),"AtOM:NotFound"); + '>&3 + read -u4 filename + if [[ $filename != AtOM:NotFound ]] + then + destdir=${filename%/*} + if cp -al "$sourcepath/$sourcefilename" "$destdir" 2>/dev/null\ + || cp -a "$sourcepath/$sourcefilename" "$destdir" + then + Update destination_files \ + filename "$destdir/${sourcefilename##*/}"\ + rename_pattern "${destinationrenamepath[$destination]}/${destinationrename[$destination]}:${destinationfat32compat["$destination"]}"\ + <<-EOWhere + id = $destfileid + last_change = $lastchange + EOWhere + progressSpin + fi + fi +done + echo ' SELECT id, old_filename