69 lines
1.9 KiB
Bash
69 lines
1.9 KiB
Bash
|
|
#!/usr/bin/env bash
|
|||
|
|
# 注册 Nexus 全局 CLI(/usr/local/bin)— install / upgrade / nx 均会调用
|
|||
|
|
#
|
|||
|
|
# NEXUS_ROOT=/opt/nexus bash deploy/install-nx-cli.sh
|
|||
|
|
#
|
|||
|
|
set -euo pipefail
|
|||
|
|
|
|||
|
|
NEXUS_ROOT="${NEXUS_ROOT:-/opt/nexus}"
|
|||
|
|
BIN_DIR="${NEXUS_BIN_DIR:-/usr/local/bin}"
|
|||
|
|
DEPLOY="${NEXUS_ROOT}/deploy"
|
|||
|
|
|
|||
|
|
RED='\033[0;31m'
|
|||
|
|
GREEN='\033[0;32m'
|
|||
|
|
YELLOW='\033[1;33m'
|
|||
|
|
NC='\033[0m'
|
|||
|
|
|
|||
|
|
info() { echo -e "${GREEN}[INFO]${NC} $*"; }
|
|||
|
|
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
|||
|
|
error() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
|
|||
|
|
|
|||
|
|
if [[ ! -d "$DEPLOY" ]]; then
|
|||
|
|
error "未找到 $DEPLOY"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
if [[ "$(id -u)" -ne 0 ]]; then
|
|||
|
|
warn "非 root:无法写入 $BIN_DIR,请使用 root 执行或: sudo bash $DEPLOY/install-nx-cli.sh"
|
|||
|
|
exit 0
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
chmod +x \
|
|||
|
|
"$DEPLOY/nx" \
|
|||
|
|
"$DEPLOY/update.sh" \
|
|||
|
|
"$DEPLOY/nexus-1panel.sh" \
|
|||
|
|
"$DEPLOY/install-nexus-fresh.sh" \
|
|||
|
|
"$DEPLOY/quick-install.sh" \
|
|||
|
|
"$DEPLOY/install-1panel-docker.sh" \
|
|||
|
|
"$DEPLOY/upgrade-1panel-docker.sh" \
|
|||
|
|
"$DEPLOY/sync-install-wizard-to-container.sh" \
|
|||
|
|
"$DEPLOY/uninstall-mysql-compose.sh" \
|
|||
|
|
"$DEPLOY/uninstall-redis-compose.sh" \
|
|||
|
|
"$DEPLOY/install-nx-cli.sh" \
|
|||
|
|
2>/dev/null || true
|
|||
|
|
|
|||
|
|
mkdir -p "$BIN_DIR"
|
|||
|
|
|
|||
|
|
link_cli() {
|
|||
|
|
local src="$1" name="$2"
|
|||
|
|
if [[ ! -f "$src" ]]; then
|
|||
|
|
warn "跳过 $name(缺少 $src)"
|
|||
|
|
return 0
|
|||
|
|
fi
|
|||
|
|
ln -sf "$src" "${BIN_DIR}/${name}"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
link_cli "$DEPLOY/nx" nx
|
|||
|
|
link_cli "$DEPLOY/update.sh" nexus-update
|
|||
|
|
link_cli "$DEPLOY/install-nexus-fresh.sh" nexus-fresh
|
|||
|
|
link_cli "$DEPLOY/quick-install.sh" nexus-install
|
|||
|
|
link_cli "$DEPLOY/nexus-1panel.sh" nexus-1panel
|
|||
|
|
link_cli "$DEPLOY/install-1panel-docker.sh" nexus-1panel-docker
|
|||
|
|
|
|||
|
|
if command -v nx >/dev/null 2>&1; then
|
|||
|
|
info "全局命令已就绪: nx → $(readlink -f "$(command -v nx)" 2>/dev/null || command -v nx)"
|
|||
|
|
else
|
|||
|
|
error "nx 未出现在 PATH 中,请确认 $BIN_DIR 在 PATH 内"
|
|||
|
|
exit 1
|
|||
|
|
fi
|