#!/usr/bin/env bash
# Shared repo/state path helpers for builder tooling.

builder_repo_root() {
  if [ -n "${TOTALLY_SPIES_REPO_ROOT:-}" ]; then
    printf '%s\n' "$TOTALLY_SPIES_REPO_ROOT"
    return 0
  fi
  git rev-parse --show-toplevel 2>/dev/null || pwd
}

builder_export_state_paths() {
  local repo_root state_root
  repo_root="$(builder_repo_root)"
  state_root="${TOTALLY_SPIES_DEVENV_STATE_ROOT:-$repo_root/.devenv/state}"

  export TOTALLY_SPIES_REPO_ROOT="$repo_root"
  export TOTALLY_SPIES_DEVENV_STATE_ROOT="$state_root"
  export TOTALLY_SPIES_BUILDER_HOST_STATE_FILE="${TOTALLY_SPIES_BUILDER_HOST_STATE_FILE:-$state_root/builder-host.json}"
  export TOTALLY_SPIES_BUILDER_RESCUE_FACTS_FILE="${TOTALLY_SPIES_BUILDER_RESCUE_FACTS_FILE:-$state_root/builder-rescue-facts.json}"
  export TOTALLY_SPIES_BUILDER_ROOTFS_PLAN_FILE="${TOTALLY_SPIES_BUILDER_ROOTFS_PLAN_FILE:-$state_root/builder-rootfs-plan.json}"
  export TOTALLY_SPIES_BUILDER_REMOTE_CONF_FILE="${TOTALLY_SPIES_BUILDER_REMOTE_CONF_FILE:-$state_root/builder-remote.conf}"

  export TOTALLY_SPIES_LEGACY_BUILDER_HOST_STATE_FILE="$state_root/hetzner-market-builder.json"
  export TOTALLY_SPIES_LEGACY_BUILDER_RESCUE_FACTS_FILE="$state_root/hetzner-rescue-facts.json"
  export TOTALLY_SPIES_LEGACY_BUILDER_ROOTFS_PLAN_FILE="$state_root/hetzner-layout-plan.json"
  export TOTALLY_SPIES_LEGACY_BUILDER_REMOTE_CONF_FILE="$state_root/builder.nix.conf"
}

builder_export_state_paths
