]> git.scottworley.com Git - picsort/blob - pic-mv
Be polite with i/o
[picsort] / pic-mv
1 #!/bin/bash
2
3 destdir=
4 if [[ -e .default-pic-mv-destdir ]];then
5 destdir=$( < .default-pic-mv-destdir )
6 fi
7
8 exposure=
9 rotate=
10 while getopts d:e:r: opt;do
11 case $opt in
12 d) destdir=$OPTARG;;
13 e) exposure=$OPTARG;;
14 r) rotate=$OPTARG;;
15 esac
16 done
17 shift `expr $OPTIND - 1`
18
19 if [[ -z "$destdir" ]];then
20 echo "Please specify a destdir with -d or .default-pic-mv-destdir" >&2
21 exit 1
22 fi
23
24 file="$1"
25 name="$2"
26
27 re_escaped_name=$(sed 's/[?+*.]/\\&/g' <<< "$name")
28
29 # Find next number
30 max=$(ls "$destdir" | sed -rn "s/^$re_escaped_name ([0-9]+).jpeg$/\1/p" | sort -n | tail -n1)
31 if [[ "$max" ]];then
32 number=$((max + 1))
33 else
34 number=1
35 fi
36
37 out="$destdir/$name $number.jpeg"
38
39 if [[ "$file" == *.NEF ]];then
40 base="${file%.NEF}"
41 NEFout="$destdir/$name $number.NEF"
42 if [[ "$rotate" ]];then
43 numeric_exposure=$(dc <<< "2k $exposure 4 / 3.5-p")
44 pics-run-ufraw "$numeric_exposure" "$file" "$out" "$rotate"
45 else
46 mv -vi "$exposure/$base.jpeg" "$out"
47 fi
48 touch -r "$file" "$out"
49 mv -vi "$file" "$NEFout"
50 chmod 644 "$NEFout"
51 else
52 if [[ "$rotate" ]];then
53 sed -i "s/^# ROBOTS_INSERT_THINGS_HERE\$/\"$name $number.jpeg\" => $rotate,\n&/" "$destdir/rotations.php"
54 fi
55 mv -vi "$file" "$out"
56 fi
57 chmod 644 "$out"