78 lines
2.9 KiB
Bash
Executable File
78 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# gniza uninstall script
|
|
|
|
set -euo pipefail
|
|
|
|
INSTALL_DIR="/usr/local/gniza"
|
|
BIN_LINK="/usr/local/bin/gniza"
|
|
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "Error: uninstall.sh must be run as root" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Uninstalling gniza..."
|
|
|
|
# Remove symlink
|
|
if [[ -L "$BIN_LINK" ]]; then
|
|
rm -f "$BIN_LINK"
|
|
echo "Removed $BIN_LINK"
|
|
fi
|
|
|
|
# Remove install directory
|
|
if [[ -d "$INSTALL_DIR" ]]; then
|
|
rm -rf "$INSTALL_DIR"
|
|
echo "Removed $INSTALL_DIR"
|
|
fi
|
|
|
|
# ── Remove cron entries ───────────────────────────────────────
|
|
if crontab -l 2>/dev/null | grep -q '# gniza:'; then
|
|
echo "Removing gniza cron entries..."
|
|
crontab -l 2>/dev/null | grep -v '# gniza:' | grep -v '/usr/local/bin/gniza' | crontab -
|
|
echo "Cron entries removed."
|
|
fi
|
|
|
|
# ── WHM Plugin ────────────────────────────────────────────────
|
|
WHM_CGI_DIR="/usr/local/cpanel/whostmgr/docroot/cgi"
|
|
if [[ -d "$WHM_CGI_DIR/gniza-whm" ]]; then
|
|
echo "Removing WHM plugin..."
|
|
/usr/local/cpanel/bin/unregister_appconfig gniza-whm 2>/dev/null || true
|
|
rm -rf "$WHM_CGI_DIR/gniza-whm"
|
|
echo "WHM plugin removed."
|
|
fi
|
|
|
|
# ── cPanel User Plugin ────────────────────────────────────────
|
|
CPANEL_BASE="/usr/local/cpanel/base/frontend/jupiter"
|
|
ADMINBIN_DIR="/usr/local/cpanel/bin/admin/Gniza"
|
|
if [[ -d "$CPANEL_BASE/gniza" ]]; then
|
|
echo "Removing cPanel user plugin..."
|
|
# uninstall_plugin expects a tar.gz archive with install.json + icon
|
|
if [[ -f "$CPANEL_BASE/gniza/install.json" ]]; then
|
|
PLUGIN_TMPDIR="$(mktemp -d)"
|
|
mkdir -p "$PLUGIN_TMPDIR/gniza/assets"
|
|
cp "$CPANEL_BASE/gniza/install.json" "$PLUGIN_TMPDIR/"
|
|
cp "$CPANEL_BASE/gniza/assets/gniza-cpanel-icon.svg" "$PLUGIN_TMPDIR/gniza/assets/" 2>/dev/null || true
|
|
tar -czf "$PLUGIN_TMPDIR/gniza-cpanel.tar.gz" -C "$PLUGIN_TMPDIR" install.json gniza/assets/gniza-cpanel-icon.svg 2>/dev/null || \
|
|
tar -czf "$PLUGIN_TMPDIR/gniza-cpanel.tar.gz" -C "$PLUGIN_TMPDIR" install.json
|
|
/usr/local/cpanel/scripts/uninstall_plugin "$PLUGIN_TMPDIR/gniza-cpanel.tar.gz" 2>/dev/null || true
|
|
rm -rf "$PLUGIN_TMPDIR"
|
|
fi
|
|
rm -rf "$CPANEL_BASE/gniza"
|
|
echo "cPanel user plugin removed."
|
|
fi
|
|
if [[ -d "$ADMINBIN_DIR" ]]; then
|
|
rm -rf "$ADMINBIN_DIR"
|
|
echo "AdminBin module removed."
|
|
fi
|
|
|
|
echo ""
|
|
echo "gniza uninstalled."
|
|
echo ""
|
|
echo "The following were NOT removed (manual cleanup if desired):"
|
|
echo " /etc/gniza/ (configuration + remotes.d/)"
|
|
echo " /var/log/gniza/ (log files)"
|
|
echo " /var/run/gniza.lock (lock file)"
|
|
echo ""
|
|
echo "To remove configs: rm -rf /etc/gniza/"
|
|
echo "To remove logs: rm -rf /var/log/gniza/"
|