#!/usr/bin/env bash
# SPDX-License-Identifier: MIT
# ──────────────────────────────────────────────────────────────────────────────
# $source: cappysan-dotfiles$
# ──────────────────────────────────────────────────────────────────────────────
#
# Set DEBUG=1 to not clear the screen when script stops
#
set -u -o pipefail
export PS4=""

# HOME must be set
if builtin test -z "${HOME:-}"; then
  echo 'error: HOME is not set. Set it and export it, and run script again' >&2
  echo '       eg: export HOME=/home/jdoe' >&2
  exit 1
fi

# Set PATH to system's absolute default
export OLDPATH="${PATH}"
export PATH=$HOME/.local/bin$(env -i dash -c 'echo ${PATH}')

# Change directory to HOME
cd ${HOME}

export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"

# Verify that we have write access to environment
mkdir -p  ${XDG_CONFIG_HOME}/environment.d/
chmod 700 ${XDG_CONFIG_HOME}

# Require dialog first
if ! type -pP dialog >/dev/null; then
  echo 'error: apt package "dialog" must be installed' >&2
  echo '       eg: "sudo apt-get install -y --no-install-recommends dialog"' >&2
  exit 1
fi
if ! type -pP pipx >/dev/null; then
  echo 'error: apt package "pipx" must be installed' >&2
  echo '       eg: "sudo apt-get install -y --no-install-recommends pipx"' >&2
  exit 1
fi
if ! type -pP vcsh >/dev/null; then
  echo 'error: apt package "vcsh" must be installed' >&2
  echo '       eg: "sudo apt-get install -y --no-install-recommends vcsh"' >&2
  exit 1
fi

version=$(python3 --version | cut -d' ' -f 2 | cut -d. -f1,2)
if test "x$version" = "x"; then
  echo "error: failed to get python version" >&2
  exit 1
fi

# We need to find where we are installed, to be able to source ourselves
# Returns ~/.local/pipx or ~/.local/share/pipx
export as_root="${HOME}/.local/share/pipx/venvs/cappysan-dotfiles/lib/python${version}/site-packages/dotfiles/share/"

# Dialog's will use a temp file for output
as_output=$(mktemp)
if test "${DEBUG:-}" == ""; then
  trap "rm -f \"${as_output}\"; dialog --clear" 0 1 2 3 15
fi

# /home/julien/src/gitlab.com/cappysan/dotfiles/dotfile-scripts/main/src/share/setup.d
source ${as_root}/functions.sh

_as_eval_dirs ${as_root}/setup.d
_as_cleanup
