slcl/tngen

84 lines
921 B
Bash
Executable File

#! /bin/sh
set -e
usage()
{
echo "$0 [-s <size>] [-j <jobs>] [-h] -d <root> <path>"
}
SIZE=96
while getopts d:j:s:h arg
do
case $arg in
d) ROOT="$OPTARG"
;;
j) JOBS="$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
DIR="$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
}
scan()
{
while read d
do
if [ -n "$d" ]
then
scan "$d"
fi
"$(dirname "$0")"/mkgen -d "$ROOT" "$1"
done <<-EOF
$(eval find \"$1\"/* -prune -type d || return 0)
EOF
}
echo Generating Makefiles...
scan "$DIR"
cd "$ROOT/thumbnails" && make ${JOBS:+-j$JOBS}