Update install.sh to support single-line remote install
Clones from git repo when run outside a local checkout, with automatic temp directory cleanup. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,19 +1,35 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# gniza install script
|
# gniza installer — single-line install:
|
||||||
# Installs to /usr/local/gniza and creates symlink in /usr/local/bin
|
# bash <(curl -sSL http://192.168.100.100:3000/shukivaknin/gniza/raw/branch/main/scripts/install.sh)
|
||||||
|
#
|
||||||
|
# Or from a local clone:
|
||||||
|
# bash scripts/install.sh
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
INSTALL_DIR="/usr/local/gniza"
|
INSTALL_DIR="/usr/local/gniza"
|
||||||
BIN_LINK="/usr/local/bin/gniza"
|
BIN_LINK="/usr/local/bin/gniza"
|
||||||
|
REPO_URL="ssh://git@192.168.100.100:2222/shukivaknin/gniza.git"
|
||||||
|
TMPDIR_CLONE=""
|
||||||
|
|
||||||
if [[ $EUID -ne 0 ]]; then
|
if [[ $EUID -ne 0 ]]; then
|
||||||
echo "Error: install.sh must be run as root" >&2
|
echo "Error: install.sh must be run as root" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
# Determine source directory — local clone or fresh git clone
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}" 2>/dev/null)" 2>/dev/null && pwd)" || true
|
||||||
|
if [[ -n "$SCRIPT_DIR" && -f "$SCRIPT_DIR/../bin/gniza" ]]; then
|
||||||
SOURCE_DIR="$(dirname "$SCRIPT_DIR")"
|
SOURCE_DIR="$(dirname "$SCRIPT_DIR")"
|
||||||
|
else
|
||||||
|
echo "Cloning gniza..."
|
||||||
|
TMPDIR_CLONE="$(mktemp -d)"
|
||||||
|
git clone --depth 1 "$REPO_URL" "$TMPDIR_CLONE" 2>&1
|
||||||
|
SOURCE_DIR="$TMPDIR_CLONE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cleanup() { [[ -n "$TMPDIR_CLONE" ]] && rm -rf "$TMPDIR_CLONE"; }
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
echo "Installing gniza to $INSTALL_DIR..."
|
echo "Installing gniza to $INSTALL_DIR..."
|
||||||
|
|
||||||
@@ -35,9 +51,7 @@ ln -sf "$INSTALL_DIR/bin/gniza" "$BIN_LINK"
|
|||||||
mkdir -p "$INSTALL_DIR/workdir"
|
mkdir -p "$INSTALL_DIR/workdir"
|
||||||
|
|
||||||
# Create config directory structure
|
# Create config directory structure
|
||||||
mkdir -p /etc/gniza
|
mkdir -p /etc/gniza/remotes.d /etc/gniza/schedules.d
|
||||||
mkdir -p /etc/gniza/remotes.d
|
|
||||||
mkdir -p /etc/gniza/schedules.d
|
|
||||||
|
|
||||||
# Copy example configs if no config exists
|
# Copy example configs if no config exists
|
||||||
if [[ ! -f /etc/gniza/gniza.conf ]]; then
|
if [[ ! -f /etc/gniza/gniza.conf ]]; then
|
||||||
@@ -56,9 +70,19 @@ echo "gniza installed successfully!"
|
|||||||
WHM_CGI_DIR="/usr/local/cpanel/whostmgr/docroot/cgi"
|
WHM_CGI_DIR="/usr/local/cpanel/whostmgr/docroot/cgi"
|
||||||
if [[ -d "$WHM_CGI_DIR" ]]; then
|
if [[ -d "$WHM_CGI_DIR" ]]; then
|
||||||
echo "Installing WHM plugin..."
|
echo "Installing WHM plugin..."
|
||||||
|
# Remove old assets cruft (node_modules, src) if upgrading
|
||||||
|
rm -rf "$WHM_CGI_DIR/gniza-whm/assets/node_modules" \
|
||||||
|
"$WHM_CGI_DIR/gniza-whm/assets/src" \
|
||||||
|
"$WHM_CGI_DIR/gniza-whm/assets/package.json" \
|
||||||
|
"$WHM_CGI_DIR/gniza-whm/assets/package-lock.json" 2>/dev/null || true
|
||||||
cp -r "$SOURCE_DIR/whm/gniza-whm" "$WHM_CGI_DIR/"
|
cp -r "$SOURCE_DIR/whm/gniza-whm" "$WHM_CGI_DIR/"
|
||||||
cp "$SOURCE_DIR/whm/gniza-whm.conf" "$WHM_CGI_DIR/gniza-whm/"
|
cp "$SOURCE_DIR/whm/gniza-whm.conf" "$WHM_CGI_DIR/gniza-whm/"
|
||||||
chmod +x "$WHM_CGI_DIR/gniza-whm/"*.cgi
|
chmod +x "$WHM_CGI_DIR/gniza-whm/"*.cgi
|
||||||
|
# Remove build artifacts that shouldn't be on the server
|
||||||
|
rm -rf "$WHM_CGI_DIR/gniza-whm/assets/node_modules" \
|
||||||
|
"$WHM_CGI_DIR/gniza-whm/assets/src" \
|
||||||
|
"$WHM_CGI_DIR/gniza-whm/assets/package.json" \
|
||||||
|
"$WHM_CGI_DIR/gniza-whm/assets/package-lock.json" 2>/dev/null || true
|
||||||
/usr/local/cpanel/bin/register_appconfig "$WHM_CGI_DIR/gniza-whm/gniza-whm.conf"
|
/usr/local/cpanel/bin/register_appconfig "$WHM_CGI_DIR/gniza-whm/gniza-whm.conf"
|
||||||
echo "WHM plugin installed — access via WHM > Plugins > gniza Backup Manager"
|
echo "WHM plugin installed — access via WHM > Plugins > gniza Backup Manager"
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user