#! /bin/sh set -e usage() { echo "$0 [-s ] [-h] -d " } SIZE=96 while getopts s:d:h arg do case $arg in d) DIR="$OPTARG" ;; s) SIZE="$OPTARG" ;; h) usage exit 0 ;; ?) usage >&2 exit 1 ;; esac done if [ -z "$DIR" ] then usage >&2 exit 1 fi shift $(($OPTIND - 1)) if [ $# != 1 ]; then usage >&2 exit 1 fi F="$1" gen() { IN="$1" OUT="$2" if [ -z "$OUT" ] then echo Expected output filename >&2 return 1 fi mkdir -p "$(dirname "$OUT")" if convert -thumbnail x$SIZE "$IN" "$OUT" then echo Created $OUT else echo Failed to create $OUT >&2 fi } while read f; do if [ "$f" != "" ] then THUMBNAIL=$(echo "$f" | sed "s,$DIR/user/,$DIR/thumbnails/,") gen "$f" "$THUMBNAIL" fi done <<-EOF $(find "$F" -type f \ -a -iname '*.jpeg' \ -o -iname '*.jpg' \ -o -iname '*.png' \ -o -iname '*.jpeg') EOF