]> git.scottworley.com Git - picsort/blobdiff - pic-mv
Support '?' in destination filenames
[picsort] / pic-mv
diff --git a/pic-mv b/pic-mv
index b84390c80a307dc0984a02478edb5a26e5f67270..0309ec0393e23910a1ad4b16296f7721b97340d7 100755 (executable)
--- a/pic-mv
+++ b/pic-mv
@@ -1,6 +1,9 @@
 #!/bin/bash
 
-destdir=/some/path  # Optional: Fill this in here.
+destdir=
+if [[ -e .default-pic-mv-destdir ]];then
+  destdir=$( < .default-pic-mv-destdir )
+fi
 
 exposure=
 rotate=
@@ -13,11 +16,18 @@ while getopts d:e:r: opt;do
 done
 shift `expr $OPTIND - 1`
 
+if [[ -z "$destdir" ]];then
+  echo "Please specify a destdir with -d or .default-pic-mv-destdir" >&2
+  exit 1
+fi
+
 file="$1"
 name="$2"
 
+re_escaped_name=$(sed 's/[?+*.]/\\&/g' <<< "$name")
+
 # Find next number
-max=$(ls "$destdir" | sed -rn "s/^$name ([0-9]+).jpeg$/\1/p" | sort -n | tail -n1)
+max=$(ls "$destdir" | sed -rn "s/^$re_escaped_name ([0-9]+).jpeg$/\1/p" | sort -n | tail -n1)
 if [[ "$max" ]];then
   number=$((max + 1))
 else
@@ -28,6 +38,7 @@ out="$destdir/$name $number.jpeg"
 
 if [[ "$file" == *.NEF ]];then
   base="${file%.NEF}"
+  NEFout="$destdir/$name $number.NEF"
   if [[ "$rotate" ]];then
     numeric_exposure=$(dc <<< "2k $exposure 4 / 3.5-p")
     pics-run-ufraw "$numeric_exposure" "$file" "$out" "$rotate"
@@ -35,10 +46,12 @@ if [[ "$file" == *.NEF ]];then
     mv -vi "$exposure/$base.jpeg" "$out"
   fi
   touch -r "$file" "$out"
-  mv -vi "$file" "$destdir/$name $number.NEF"
+  mv -vi "$file" "$NEFout"
+  chmod 644 "$NEFout"
 else
   if [[ "$rotate" ]];then
     sed -i "s/^# ROBOTS_INSERT_THINGS_HERE\$/\"$name $number.jpeg\" => $rotate,\n&/" "$destdir/rotations.php"
   fi
   mv -vi "$file" "$out"
 fi
+chmod 644 "$out"