#!/usr/bin/env sh
set -e
export LC_ALL='C.UTF8'

help_text() {
  printf "
-t path to pango formated text file
   how to format: https://usage.imagemagick.org/text/#pango
   or as an environment variable IMAGE_TEXT not with path but the text itself
   if -t is set the environment variable will be ignored

-p is a path to write the file to. Format is determined by file ending.
   or as an environment variable PICTURE_PATH
   if -p is set the environment variable will be ignored
  "
  exit 1
}

# directory of the script itself
SCRIPT_DIR="$(cd -P -- "$(dirname -- "$(command -v -- "$0")")" && pwd -P)"
export SCRIPT_DIR

# set defaults
P_PATH="$SCRIPT_DIR/example.jpg"
I_TEXT="$(cat "$SCRIPT_DIR"/text.pango.example 2>/dev/null || echo 'example text')"

# read from environment variables
P_PATH="${PICTURE_PATH:-$P_PATH}"
I_TEXT="${IMAGE_TEXT:-$I_TEXT}"

# options, they override environment variables
while getopts "p:t:" opt
do
  case "$opt" in
    p) P_PATH="$OPTARG";;
    t) I_TEXT=$(cat "$OPTARG");;
    *) help_text
  esac
done

magick \
  -background '#FFFFFF' \
  -fill '#000000' \
  -font 'FiraCode Nerd Font' \
  -pointsize 72 pango:"$I_TEXT" \
  "$P_PATH"