#! /bin/sh

set -e

usage()
{
    echo "$0 [-s <size>] [-h] -d <dir> <path>"
}

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
