2026-07-17 15:45:25 +08:00
|
|
|
|
#!/usr/bin/env bash
|
2026-07-17 16:45:10 +08:00
|
|
|
|
# One-shot installer: CLI + same-window HUD + Grok plugin registration
|
|
|
|
|
|
# Run from repo root: bash scripts/install.sh | npm run setup
|
2026-07-17 15:45:25 +08:00
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
|
|
|
|
cd "$ROOT"
|
|
|
|
|
|
|
|
|
|
|
|
need() {
|
|
|
|
|
|
if ! command -v "$1" >/dev/null 2>&1; then
|
|
|
|
|
|
echo "error: missing dependency: $1" >&2
|
|
|
|
|
|
if [[ "$1" == "tmux" ]]; then
|
|
|
|
|
|
echo " macOS: brew install tmux" >&2
|
|
|
|
|
|
elif [[ "$1" == "node" ]]; then
|
|
|
|
|
|
echo " install Node.js 18+ from https://nodejs.org" >&2
|
|
|
|
|
|
fi
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
need node
|
|
|
|
|
|
need npm
|
|
|
|
|
|
if ! command -v tmux >/dev/null 2>&1; then
|
|
|
|
|
|
echo "warn: tmux not found — same-window HUD needs tmux (brew install tmux)" >&2
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
NODE_MAJOR="$(node -p "process.versions.node.split('.')[0]")"
|
|
|
|
|
|
if [[ "$NODE_MAJOR" -lt 18 ]]; then
|
|
|
|
|
|
echo "error: Node.js 18+ required (found $(node -v))" >&2
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2026-07-17 16:45:10 +08:00
|
|
|
|
echo "==> [1/5] 安装依赖"
|
2026-07-17 15:45:25 +08:00
|
|
|
|
npm install
|
|
|
|
|
|
|
2026-07-17 16:45:10 +08:00
|
|
|
|
echo "==> [2/5] 编译 (hooks / CLI 需要 dist/)"
|
2026-07-17 15:45:25 +08:00
|
|
|
|
npm run build
|
|
|
|
|
|
|
2026-07-17 16:45:10 +08:00
|
|
|
|
echo "==> [3/5] 链接 CLI 到 PATH (npm link)"
|
2026-07-17 15:45:25 +08:00
|
|
|
|
npm link
|
|
|
|
|
|
|
2026-07-17 16:45:10 +08:00
|
|
|
|
echo "==> [4/5] 安装 dashboard(tmux 多行状态条 + grok wrapper)"
|
2026-07-17 15:45:25 +08:00
|
|
|
|
node bin/grok-build-hud.js --install-dashboard
|
|
|
|
|
|
node bin/grok-build-hud.js --theme auto
|
|
|
|
|
|
node bin/grok-build-hud.js --preset full
|
|
|
|
|
|
|
2026-07-17 16:48:16 +08:00
|
|
|
|
echo "==> [5/5] 注册为本地 Grok 插件(第三方 / 非官方 marketplace)"
|
2026-07-17 16:45:10 +08:00
|
|
|
|
if command -v grok >/dev/null 2>&1; then
|
|
|
|
|
|
# Prefer enable after install; re-run is ok for updates
|
2026-07-17 16:45:59 +08:00
|
|
|
|
# Use absolute path (no trailing /.) so installed-plugins id stays stable
|
|
|
|
|
|
if grok plugin install "$ROOT" --trust 2>&1; then
|
2026-07-17 16:45:10 +08:00
|
|
|
|
grok plugin enable grok-build-hud 2>/dev/null || true
|
|
|
|
|
|
echo " 插件已安装: grok-build-hud"
|
2026-07-17 16:45:59 +08:00
|
|
|
|
if grok plugin validate "$ROOT" >/dev/null 2>&1; then
|
2026-07-17 16:45:10 +08:00
|
|
|
|
echo " plugin validate: ok"
|
|
|
|
|
|
else
|
2026-07-17 16:45:59 +08:00
|
|
|
|
echo " warn: plugin validate 未通过(可稍后手动: grok plugin validate \"$ROOT\")" >&2
|
2026-07-17 16:45:10 +08:00
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo " warn: grok plugin install 失败 — 可稍后手动:" >&2
|
2026-07-17 16:45:59 +08:00
|
|
|
|
echo " grok plugin install \"$ROOT\" --trust && grok plugin enable grok-build-hud" >&2
|
2026-07-17 16:45:10 +08:00
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo " warn: 未找到 grok CLI,跳过插件注册" >&2
|
|
|
|
|
|
echo " 安装 Grok Build 后执行:" >&2
|
2026-07-17 16:45:59 +08:00
|
|
|
|
echo " grok plugin install \"$ROOT\" --trust && grok plugin enable grok-build-hud" >&2
|
2026-07-17 16:45:10 +08:00
|
|
|
|
fi
|
|
|
|
|
|
|
2026-07-17 15:45:25 +08:00
|
|
|
|
echo ""
|
2026-07-17 16:45:10 +08:00
|
|
|
|
VER="$(node -e "import('node:fs').then(fs=>console.log(JSON.parse(fs.readFileSync('package.json','utf8')).version))" 2>/dev/null || echo "?")"
|
2026-07-17 16:48:16 +08:00
|
|
|
|
echo "完成。grok-build-hud v${VER}(第三方插件 + 同窗口 HUD,非 xAI 官方)"
|
2026-07-17 15:45:25 +08:00
|
|
|
|
echo ""
|
2026-07-17 16:32:20 +08:00
|
|
|
|
echo " 启动 Grok + 底部 HUD: grok"
|
|
|
|
|
|
echo " 看当前状态一次: grok-hud status"
|
|
|
|
|
|
echo " 设定(语言/预设): grok-hud settings"
|
2026-07-17 16:45:10 +08:00
|
|
|
|
echo " 会话斜杠命令: /hud /status /settings /setup …"
|
2026-07-17 16:32:20 +08:00
|
|
|
|
echo " 主题跟随 Grok: grok-build-hud --theme auto"
|
|
|
|
|
|
echo " 停止后台刷新: grok-hud stop"
|
2026-07-17 16:45:10 +08:00
|
|
|
|
echo " 插件详情: grok plugin details grok-build-hud"
|
2026-07-17 15:45:25 +08:00
|
|
|
|
echo ""
|
2026-07-17 16:45:10 +08:00
|
|
|
|
echo "若 hooks 未生效:在 Grok 内 /hooks 后按 r 重载"
|
|
|
|
|
|
echo "文档(中文):README.md · English: README.en.md"
|
|
|
|
|
|
echo "若 command not found,把下面加入 PATH 后重开终端:"
|
2026-07-17 15:45:25 +08:00
|
|
|
|
echo " export PATH=\"\$(npm prefix -g)/bin:\$HOME/.local/bin:\$PATH\""
|