#!/bin/bash if [ "$1" ] ; then ARCHIVE_ROOT="$1" else ARCHIVE_ROOT="." fi echo "Doing: \"$ARCHIVE_ROOT\"" METADATA_DIR="metadata" RAW_PREVIEW_DIR="hi-res (RAW)" PROCESSED_PREVIEW_DIR="preview" PROCESSED_PREVIEW_NAME="%-:1d/${PROCESSED_PREVIEW_DIR}/%f.jpg" PREVIEW_NAME="%-:1d/${RAW_PREVIEW_DIR}/%f.jpg" JSON_NAME="%-:1d/${METADATA_DIR}/%f.json" # TODO do a version of this using exiv2... # - to be more flexible... # - check speed... # - give the user more options... # # XXX need to also copy jpg originals to the preview dir (things that # were shot in jpeg in-camera)... # XXX do we need to rotate the images using exif data here??? # XXX need to prevent overwriting of unchanged exif data... # when file exists?? # XXX add PSD metadata extraction... # -execute '-FileModifyDate $W) s = $H else s = $W ; s / $SIZE" | bc -l) echo "($FACTOR): ${OUT}:${COMPRESSION}" vips im_shrink "./$IN" "./${OUT}:${COMPRESSION}" $FACTOR $FACTOR 2> /dev/null fi } # XXX use find... cd "./${ARCHIVE_ROOT}" # XXX this is ugly but it works... if [[ $ARCHIVE_ROOT == "." ]] ; then for FROM in */DCIM/hi-res\ \(RAW\)/*jpg ; do TO="${FROM/hi-res\ /preview }" # XXX do different-sized previews... makepreview "$SIZE" "./$FROM" "./$TO" done # pre-build cache... for p in */DCIM/preview\ \(RAW\)/ ; do if ! [ -e "./$p" ] ; then continue fi buildcache "./$p" done else for FROM in ./DCIM/hi-res\ \(RAW\)/*jpg ; do TO="${FROM/hi-res\ /preview }" # XXX do different-sized previews... makepreview "$SIZE" "./$FROM" "./$TO" done # pre-build cache... for p in ./DCIM/preview\ \(RAW\)/ ; do if ! [ -e "./$p" ] ; then continue fi buildcache "./$p" done fi # vim:set nowrap nospell :