90 lines
1.6 KiB
Plaintext
90 lines
1.6 KiB
Plaintext
|
#! /bin/sh
|
||
|
|
||
|
usage()
|
||
|
{
|
||
|
echo "$0 [-s <size>] [-j <jobs>] [-h] -d <root> <path>"
|
||
|
}
|
||
|
|
||
|
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"
|