#!/usr/bin/env bash
# vim:et:ts=2:sts=2:sw=2

# Get absolute repository root (especially when symlinked)
ROOT="$(realpath "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")")"

# Load accompanying bash library
source "$ROOT/lib/lib.bash"

if [ -n "$HELP" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
  say "
  USAGE:
    $(g "${BASH_SOURCE##*/}")  [$(c version)]

  DESCRIPTION:
    $(g "${BASH_SOURCE##*/}") installs a curriculum archive into the Desktop

    The lastest local version will be used by default

  NOTE:
    If no archives are available, use $(g tl-comp-pull) to download one
"
  exit 1
fi

# Exit now if run as the admin user
assert-is-admin

say "Syncing curriculum versions"
"$ROOT/bin/tl-comp-sync" "curriculum"

DEST="${1:-/var/btrfs/@guest/Desktop}"
# The version -- x.x.x
VERSION="${2:-"$("$ROOT/bin/tl-comp-latest" "curriculum")"}"

TEMPDIR="$(mktemp -d)"

say "Unpacking archive"
run tar -xzf "/srv/curriculum/v$VERSION.tar.gz" -C "$TEMPDIR"

say "Replacing existing version"
for dir in "$TEMPDIR/"{*,.version,.changelog}; do
  run sudo rm -rf "$DEST/$(basename "$dir")"
  run sudo rsync -az "$dir" "$DEST"
done
run sudo chown -R guest:guest "$DEST"
run rm -rf "$TEMPDIR"

run write "/srv/curriculum/.override" "$VERSION"
say "Done. curriculum v$(c $VERSION) is installed at $(c $DEST)"
