diff --git a/zsh/zshrc b/zsh/zshrc index 0822465..05fd41f 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -126,16 +126,30 @@ source $DOTCONFDIR/dotconf.sh ### Shell function definition +function _sortimages () { + SOURCE="$1" + TARGET_PREFIX="$2" + DRYRUN=$3 + + TARGET=${TARGET_PREFIX}".jpg" + if [ $(echo "$TARGET_PREFIX" | awk '{print length}') -ge 15 ]; then + echo mv $SOURCE $TARGET; + if [ $DRYRUN = 0 ]; then + mv $SOURCE $TARGET; + chmod 640 $TARGET; + fi + else + echo "Cannot read Exif information, skipping... $SOURCE" + fi +} + function sortimages () { case $1 in -d) shift for file in $@; do DST=`identify -format "%[Exif:DateTimeOriginal]" $file | head -1 | awk '{print $1":"$2}' | awk -F':' '{print $1$2$3"-"$4$5$6}' | awk -F'.' '{print $1 }' | awk -F'::' '{print $1}'` - DST=`echo $DST.jpg` - echo mv $file $DST; - mv $file $DST; - chmod 640 $DST; + _sortimages $file $DST 0 done ;; *) @@ -144,11 +158,10 @@ function sortimages () { echo " : for example *.JPG" echo " : rename to "'$date'"-'$time'-suffix.jpg" echo " : -d rename the files" - echo -n + echo for file in $@; do DST=`identify -format "%[Exif:DateTimeOriginal]" ${file} | head -1 | awk '{print $1":"$2}' | awk -F':' '{print $1$2$3"-"$4$5$6}' | awk -F'.' '{print $1 }' | awk -F'::' '{print $1}'` - DST=${DST}'.jpg' - echo mv ${file} ${DST}; + _sortimages $file $DST 1 done ;; esac