export-notes/bin/install.sh

69 lines
1.6 KiB
Bash
Raw Permalink Normal View History

2025-05-12 23:24:36 +03:00
#!/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="export-notes"
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\""