#!/usr/bin/env bash
set -euo pipefail

script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
humand_root="$(cd "$script_dir" && pwd)"
workspace_root="${1:-$PWD}"
workspace_root="$(cd "$workspace_root" && pwd)"

config_home="${HUMAND_PI_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}/pi-humand}"
state_home="${HUMAND_PI_STATE_HOME:-${XDG_STATE_HOME:-$HOME/.local/state}/pi-humand}"
bundled_config_dir="$humand_root/config/workflow"

if [ -f "$config_home/local-config.json" ]; then
  local_config_file="$config_home/local-config.json"
else
  local_config_file=""
fi

emit_var() {
  local key="$1"
  local value="$2"
  printf '%s=%q\n' "$key" "$value"
}

emit_var "HUMAND_PI_ROOT" "$humand_root"
emit_var "HUMAND_PI_WORKSPACE_ROOT" "$workspace_root"
emit_var "HUMAND_PI_CONFIG_HOME" "$config_home"
emit_var "HUMAND_PI_STATE_HOME" "$state_home"
emit_var "HUMAND_PI_REPOS_FILE" "$bundled_config_dir/repos.json"
emit_var "HUMAND_PI_TEAMS_FILE" "$bundled_config_dir/teams.json"
emit_var "HUMAND_PI_LOCAL_CONFIG_FILE" "$local_config_file"
emit_var "HUMAND_PI_LOCAL_CONFIG_EXAMPLE_FILE" "$bundled_config_dir/local-config.example.json"
