#!/bin/bash set -euo pipefail DEBUG=false # --- Resolve project root directory (always works regardless of where script is run from) --- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_SRC="$(cd "$SCRIPT_DIR/.." && pwd)" PREFIX="${PREFIX:-/usr/local}" INSTALL_DIR="$PREFIX/bin" TARGET_NAME="convert-dirs" SCRIPT_NAME="$TARGET_NAME.sh" SCRIPT_PATH="$ROOT_SRC/$SCRIPT_NAME" # Optional --prefix CLI override while [[ $# -gt 0 ]]; do case "$1" in --debug) DEBUG=true shift ;; --prefix) PREFIX="$2" INSTALL_DIR="$PREFIX/bin" shift 2 ;; --help|-h) echo "Usage: $0 [--prefix /desired/install/path]" >&2 exit 0 ;; *) echo "Unknown option: $1" echo "Usage: $0 [--prefix /desired/install/path]" >&2 exit 1 ;; esac done if [[ "$DEBUG" == true ]]; then echo "🪵 Debug mode enabled" echo "PREFIX: $PREFIX" echo echo "SCRIPT_DIR: $SCRIPT_DIR" echo "ROOT_SRC: $ROOT_SRC" echo echo "INSTALL_DIR: $INSTALL_DIR" echo "TARGET_NAME: $TARGET_NAME" echo "SCRIPT_NAME: $SCRIPT_NAME" echo "SCRIPT_PATH: $SCRIPT_PATH" fi # Check script exists if [[ ! -f "$SCRIPT_PATH" ]]; then echo "❌ Error: Expected to find $SCRIPT_NAME at: $SCRIPT_PATH" >&2 exit 1 fi # Copy to install location echo "📦 Installing $SCRIPT_NAME to $INSTALL_DIR/$TARGET_NAME ..." sudo install -m 755 "$SCRIPT_PATH" "$INSTALL_DIR/$TARGET_NAME" echo "Installed successfully." echo "Run it with: $TARGET_NAME" echo "Add to your PATH if not already:" echo " export PATH=\"$INSTALL_DIR:\$PATH\""