#!/bin/bash -eu

set -o pipefail

if [ $# -eq 0 ]; then
    echo "Usage: $0 source_image [output_directory]"
    exit 1
fi

if [ ! -f "$1" ]; then
    echo "File not found --> $1"
    exit 1
fi

SOURCE_IMAGE="$1"
SOURCE_BASE_NAME=$(basename "$SOURCE_IMAGE")
SOURCE_BASE_NAME=${SOURCE_BASE_NAME%.*}
OUTPUT_DIR="."

if [ $# -eq 2 ]; then
    OUTPUT_DIR="$2"
fi

mkdir -p "$OUTPUT_DIR"

for size in 29 58 87 40 80 120 60 120 180 76 152 512 1024; do
    sips -s format png "$SOURCE_IMAGE" --out "$OUTPUT_DIR/$SOURCE_BASE_NAME-${size}x${size}.png" -z $size $size
done
