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

MODE="personal"

while [[ $# -gt 0 ]]; do
  case "$1" in
    --shared)
      MODE="shared"
      shift
      ;;
    --personal)
      MODE="personal"
      shift
      ;;
    -h|--help)
      cat <<USAGE
Usage: bootstrap.sh [--shared|--personal]
USAGE
      exit 0
      ;;
    *)
      echo "Unknown arg: $1" >&2
      exit 1
      ;;
  esac
done

if ! command -v git >/dev/null 2>&1; then
  if ! xcode-select -p >/dev/null 2>&1; then
    xcode-select --install || true
  fi
fi

if [[ "${MODE}" == "shared" ]]; then
  REPO_URL="https://github.com/FALAK097/mac-forge.git"
else
  REPO_URL="git@github.com:FALAK097/mac-forge.git"
  if ! ssh -T git@github.com >/dev/null 2>&1; then
    echo "SSH to GitHub not set up. Add your SSH key to GitHub first." >&2
    exit 1
  fi
fi

TARGET_DIR="$HOME/mac-forge"

if [[ ! -d "$TARGET_DIR/.git" ]]; then
  git clone "$REPO_URL" "$TARGET_DIR"
else
  git -C "$TARGET_DIR" pull --ff-only
fi

cd "$TARGET_DIR"

if [[ "${MODE}" == "personal" ]]; then
  export CHEZMOI_REPO="git@github.com:FALAK097/dotfiles.git"
  ./bootstrap/bootstrap.sh --mode personal
else
  ./bootstrap/bootstrap.sh --mode shared
fi
