From 3bb47e76d4592c1a012ea36a3431753483296484 Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Sat, 6 Apr 2013 12:14:55 +0200 Subject: [PATCH 1/2] fat32compat: nodes ending with "." --- atom | 3 +++ 1 file changed, 3 insertions(+) diff --git a/atom b/atom index 6c9ae7b..9ad81d4 100755 --- a/atom +++ b/atom @@ -1186,6 +1186,9 @@ sanitizeFile() { # Filenames can't begin or end with ' ' string=${string/#+( )/} string=${string/%+( )/} + + # Filenames can't end with '.' + string=${string/%+(.)/} fi echo "$string" } From aa9ee4dd722d0a940f1c8940f66ccae3c92faa96 Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Sun, 7 Apr 2013 19:31:46 +0200 Subject: [PATCH 2/2] copy_mime-type --- atom | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) 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