#!/bin/bash

set -ex

echo "Removing the current docs for master"
rm -rf out/master/ || exit 0

echo "Making the docs for master"
mkdir out/master/
cp util/gh-pages/index.html out/master
cp util/gh-pages/theme.js out/master
cp util/gh-pages/script.js out/master
cp util/gh-pages/style.css out/master

if [[ -n $TAG_NAME ]]; then
  echo "Save the doc for the current tag ($TAG_NAME) and point stable/ to it"
  cp -Tr out/master "out/$TAG_NAME"
  rm -f out/stable
  ln -s "$TAG_NAME" out/stable
fi

if [[ $BETA = "true" ]]; then
  echo "Update documentation for the beta release"
  cp -r out/master/* out/beta
fi

# Generate version index that is shown as root index page
python3 ./util/versions.py ./util/gh-pages/versions.html out

# Now let's go have some fun with the cloned repo
cd out
git config user.name "GHA CI"
git config user.email "gha@ci.invalid"

git status

if [[ -n $TAG_NAME ]]; then
  # track files, so that the following check works
  git add --intent-to-add "$TAG_NAME"
  if git diff --exit-code --quiet -- $TAG_NAME/; then
    echo "No changes to the output on this push; exiting."
    exit 0
  fi
  # Add the new dir
  git add "$TAG_NAME"
  # Update the symlink
  git add stable
  # Update the index.html file
  git add index.html
  git commit -m "Add documentation for ${TAG_NAME} release: ${SHA}"
elif [[ $BETA = "true" ]]; then
  if git diff --exit-code --quiet -- beta/; then
    echo "No changes to the output on this push; exiting."
    exit 0
  fi
  git add beta
  git commit -m "Automatic deploy to GitHub Pages (beta): ${SHA}"
else
  if git diff --exit-code --quiet; then
    echo "No changes to the output on this push; exiting."
    exit 0
  fi
  git add .
  git commit -m "Automatic deploy to GitHub Pages: ${SHA}"
fi

git push "$SSH_REPO" "$TARGET_BRANCH"
