mirror of
https://github.com/DeBrosOfficial/orama.git
synced 2026-03-27 12:44:13 +00:00
- validate agent, API token, archive before provisioning - auto-build archive via `make build-archive` if missing - add tests and Makefile install target
96 lines
2.4 KiB
Bash
Executable File
96 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Orama CLI installer
|
|
# Builds the CLI and adds `orama` to your PATH.
|
|
# Usage: ./scripts/install.sh [--shell fish|zsh|bash]
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
BIN_DIR="$HOME/.local/bin"
|
|
BIN_PATH="$BIN_DIR/orama"
|
|
|
|
# --- Parse args ---
|
|
SHELL_NAME=""
|
|
while [[ $# -gt 0 ]]; do
|
|
case "$1" in
|
|
--shell) SHELL_NAME="$2"; shift 2 ;;
|
|
-h|--help)
|
|
echo "Usage: ./scripts/install.sh [--shell fish|zsh|bash]"
|
|
echo ""
|
|
echo "Builds the Orama CLI and installs 'orama' to ~/.local/bin."
|
|
echo "If --shell is not provided, auto-detects from \$SHELL."
|
|
exit 0 ;;
|
|
*) echo "Unknown option: $1"; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
# Auto-detect shell
|
|
if [[ -z "$SHELL_NAME" ]]; then
|
|
case "$SHELL" in
|
|
*/fish) SHELL_NAME="fish" ;;
|
|
*/zsh) SHELL_NAME="zsh" ;;
|
|
*/bash) SHELL_NAME="bash" ;;
|
|
*) SHELL_NAME="unknown" ;;
|
|
esac
|
|
fi
|
|
|
|
echo "==> Shell: $SHELL_NAME"
|
|
|
|
# --- Build ---
|
|
echo "==> Building Orama CLI..."
|
|
(cd "$PROJECT_DIR" && make build)
|
|
|
|
# --- Install binary ---
|
|
mkdir -p "$BIN_DIR"
|
|
cp -f "$PROJECT_DIR/bin/orama" "$BIN_PATH"
|
|
chmod +x "$BIN_PATH"
|
|
echo "==> Installed $BIN_PATH"
|
|
|
|
# --- Ensure PATH ---
|
|
add_to_path() {
|
|
local rc_file="$1"
|
|
local line="$2"
|
|
|
|
if [[ -f "$rc_file" ]] && grep -qF "$line" "$rc_file"; then
|
|
echo "==> PATH already configured in $rc_file"
|
|
else
|
|
echo "" >> "$rc_file"
|
|
echo "$line" >> "$rc_file"
|
|
echo "==> Added PATH to $rc_file"
|
|
fi
|
|
}
|
|
|
|
case "$SHELL_NAME" in
|
|
fish)
|
|
FISH_CONFIG="$HOME/.config/fish/config.fish"
|
|
mkdir -p "$(dirname "$FISH_CONFIG")"
|
|
add_to_path "$FISH_CONFIG" "fish_add_path $BIN_DIR"
|
|
;;
|
|
zsh)
|
|
add_to_path "$HOME/.zshrc" "export PATH=\"$BIN_DIR:\$PATH\""
|
|
;;
|
|
bash)
|
|
add_to_path "$HOME/.bashrc" "export PATH=\"$BIN_DIR:\$PATH\""
|
|
;;
|
|
*)
|
|
echo "==> Unknown shell. Add this to your shell config manually:"
|
|
echo " export PATH=\"$BIN_DIR:\$PATH\""
|
|
;;
|
|
esac
|
|
|
|
# --- Verify ---
|
|
VERSION=$("$BIN_PATH" version 2>/dev/null || echo "unknown")
|
|
echo ""
|
|
echo "==> Orama CLI ${VERSION} installed!"
|
|
echo " Run: orama --help"
|
|
echo ""
|
|
if [[ "$SHELL_NAME" != "unknown" ]]; then
|
|
echo " Restart your terminal or run:"
|
|
case "$SHELL_NAME" in
|
|
fish) echo " source ~/.config/fish/config.fish" ;;
|
|
zsh) echo " source ~/.zshrc" ;;
|
|
bash) echo " source ~/.bashrc" ;;
|
|
esac
|
|
fi
|