#! /bin/sh usage() { echo "$0 [-s ] [-j ] [-h] -d " } SIZE=96 while getopts d:s:h arg do case $arg in d) ROOT="$OPTARG" ;; s) SIZE="$OPTARG" ;; h) usage exit 0 ;; ?) usage >&2 exit 1 ;; esac done if [ -z "$ROOT" ]; then usage >&2 exit 1 fi shift $(($OPTIND - 1)) if [ $# != 1 ]; then usage >&2 exit 1 fi TDIR="$(echo "$1" | sed "s,$ROOT/user,$ROOT/thumbnails,")" eval find \"$1\"/* -prune >/dev/null || return 0 mkdir -p "$TDIR" MK="$(echo "$TDIR/Makefile")" cat <<-"EOF" > "$MK" .POSIX: EOF echo "DIRS=\\" >> "$MK" eval find \"$TDIR\"/* -prune -type d > "$TDIR/.dirs" while read dir do D="$(echo "$dir" | sed "s, ,\\\\ ,g")" echo "$D \\" >> "$MK" done < "$TDIR/.dirs" echo >> "$MK" echo "DEPS=\\" >> "$MK" eval find \"$1\"/* -prune -type f \ -a -iname '*.jpeg' \ -o -iname '*.jpg' \ -o -iname '*.png' \ -o -iname '*.jpeg' > "$TDIR/.files" while read f do THUMBNAIL="$(echo "$f" | sed "s,$ROOT/user/,$ROOT/thumbnails/," \ | sed "s, ,\\\\ ,g")" echo "$THUMBNAIL \\" >> "$MK" done < "$TDIR/.files" echo >> "$MK" echo 'all: $(DEPS) $(DIRS)' >> "$MK" echo 'FORCE:' >> "$MK" while read dir do D="$(echo "$dir" | sed "s, ,\\\\ ,g")" echo "$D: FORCE" >> "$MK" printf '\t+cd $@ && $(MAKE)\n' >> "$MK" done < "$TDIR/.dirs" while read f do THUMBNAIL="$(echo "$f" | sed "s,$ROOT/user/,$ROOT/thumbnails/," \ | sed "s, ,\\\\ ,g")" EF=$(echo "$f" | sed "s, ,\\\\ ,g") echo $THUMBNAIL: $EF >> "$MK" printf '\tconvert -thumbnail x%d "$<" "$@" || :\n' $SIZE >> "$MK" done < "$TDIR/.files" echo "Successfully generated $MK"