#!/bin/bash

set -o nounset
set -o errexit

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

cd "$DIR"

export SOURCE_DIR="Pics"
export TARGET_DIR="Pics Resized"

mkdir -p "$TARGET_DIR"

function resizeimage {

    IMAGE_PATH="${1#*/}"
    OUTPUT_PATH="${TARGET_DIR}/${IMAGE_PATH}"

    if [[ "$OUTPUT_PATH" =~ '/' ]]
    then
        mkdir -p "$(dirname "$OUTPUT_PATH")"
    fi

    if [ ! -e "${OUTPUT_PATH}" ]
    then
        echo "Resizing ${IMAGE_PATH}"
        convert -resize '1280x>' "${SOURCE_DIR}/${IMAGE_PATH}" "$OUTPUT_PATH"
        jpegoptim -S200 "$OUTPUT_PATH"
    fi
}

export -f resizeimage

find "$SOURCE_DIR" -type f \( -iname '*.jpg' -o -iname '*.jpeg' \) -exec bash -c 'resizeimage "$@"' bash {} \;

read -rp "Done. Press Enter to exit"