68 lines
1.6 KiB
Bash
Executable file
68 lines
1.6 KiB
Bash
Executable file
#!/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\""
|