Compare commits
4 commits
12f33a67d5
...
7b03c15879
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b03c15879 | |||
| 5909ed8158 | |||
| 383b936cec | |||
| 7518d708fe |
4 changed files with 117 additions and 19 deletions
68
bin/install.sh
Executable file
68
bin/install.sh
Executable file
|
|
@ -0,0 +1,68 @@
|
|||
#!/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\""
|
||||
49
bin/uninstall.sh
Executable file
49
bin/uninstall.sh
Executable file
|
|
@ -0,0 +1,49 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
DEBUG=false
|
||||
|
||||
ROOT_SRC=".."
|
||||
TARGET_NAME="convert-dirs"
|
||||
|
||||
PREFIX="${PREFIX:-/usr/local}"
|
||||
INSTALL_PATH="$PREFIX/bin/$TARGET_NAME"
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--debug)
|
||||
DEBUG=true
|
||||
shift
|
||||
;;
|
||||
--prefix)
|
||||
PREFIX="$2"
|
||||
INSTALL_PATH="$PREFIX/bin/$TARGET_NAME"
|
||||
shift 2
|
||||
;;
|
||||
--help|-h)
|
||||
echo "Usage: $0 [--prefix /custom/bin/path]" >&2
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option $1" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ "$DEBUG" == true ]]; then
|
||||
echo "ROOT_SRC=$ROOT_SRC"
|
||||
echo "TARGET_NAME=$TARGET_NAME"
|
||||
echo "PREFIX=$PREFIX"
|
||||
echo "INSTALL_PATH=$INSTALL_PATH"
|
||||
fi
|
||||
|
||||
# check and remove
|
||||
if [[ ! -f "$INSTALL_PATH" ]]; then
|
||||
echo "❌ $INSTALL_PATH not found. Nothing to uninstall."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🗑️ Removing $INSTALL_PATH ..."
|
||||
sudo rm "$INSTALL_PATH"
|
||||
echo "✅ Uninstalled successfully."
|
||||
19
install.sh
19
install.sh
|
|
@ -1,19 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_NAME="convert_dirs.sh"
|
||||
INSTALL_DIR="/usr/local/bin"
|
||||
TARGET_NAME="convert_dirs"
|
||||
|
||||
# Check script exists
|
||||
if [[ ! -f "$SCRIPT_NAME" ]]; then
|
||||
echo "❌ Error: $SCRIPT_NAME not found in current directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Copy to install location
|
||||
echo "📦 Installing $SCRIPT_NAME to $INSTALL_DIR/$TARGET_NAME ..."
|
||||
sudo install -m 755 "$SCRIPT_NAME" "$INSTALL_DIR/$TARGET_NAME"
|
||||
|
||||
echo "✅ Installed successfully."
|
||||
echo "🔧 Run it with: $TARGET_NAME"
|
||||
Loading…
Add table
Reference in a new issue