#!/usr/bin/env bash
DOCROOT=pages

set -e

SCRIPTDIR=$(
  cd "$(dirname "$(realpath "$0")")" || exit 254
  pwd -P
)

SOURCE=$1
DEST=$2

if [[ -z $2 ]]; then
  DEST="./out";
fi

DEST=$(realpath $DEST)

if [[ -z $SOURCE || -z $DEST ]]; then
  echo "Usage: $0 sourcedir destdir"
  exit 1
fi

if [[ ! -d $DEST ]]; then
  echo "! $DEST does not exist"
  exit 255
fi

SOURCE=$(realpath "$SOURCE")

cd "${SOURCE}/${DOCROOT}" || exit 255

FILELIST=$(find . -type f -not -name '.*')
while IFS= read -r filename; do

  if [[ ! -d $(dirname "$DEST/$filename") ]]; then
     echo "- makedir $DEST/$filename"
     mkdir -p "$(dirname "$DEST/$filename")"
  fi

  EXT=${filename##*.}
  if [[ $EXT == "json" || $EXT == "md" ]]; then
     echo "- convert $filename"
     "${SCRIPTDIR}/publish.sh" "${filename}" "${DEST}" "${SOURCE}"
  else
     echo "- copying $filename"
     cp "$filename" "$DEST/$filename"
  fi
done <<< "$FILELIST"

if [[ -d ${SOURCE}/assets ]]; then
  echo "- copying private assets"
  cp -Rv ${SOURCE}/assets/* "$DEST/"
fi

echo "* Output in ${DEST}"
echo "------------------------------------------"
