|
016a29f…
|
lmata
|
1 |
#!/usr/bin/env bash |
|
016a29f…
|
lmata
|
2 |
# Smoke test for scuttlebot relay installers. |
|
016a29f…
|
lmata
|
3 |
|
|
016a29f…
|
lmata
|
4 |
set -euo pipefail |
|
016a29f…
|
lmata
|
5 |
|
|
016a29f…
|
lmata
|
6 |
REPO_ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd) |
|
016a29f…
|
lmata
|
7 |
TEMP_HOME=$(mktemp -d) |
|
016a29f…
|
lmata
|
8 |
export HOME="$TEMP_HOME" |
|
016a29f…
|
lmata
|
9 |
export SCUTTLEBOT_CONFIG_FILE="$HOME/.config/scuttlebot-relay.env" |
|
016a29f…
|
lmata
|
10 |
export CODEX_HOOKS_DIR="$HOME/.codex/hooks" |
|
016a29f…
|
lmata
|
11 |
export CODEX_HOOKS_JSON="$HOME/.codex/hooks.json" |
|
016a29f…
|
lmata
|
12 |
export CODEX_CONFIG_TOML="$HOME/.codex/config.toml" |
|
016a29f…
|
lmata
|
13 |
export CODEX_BIN_DIR="$HOME/.local/bin" |
|
016a29f…
|
lmata
|
14 |
export GEMINI_HOOKS_DIR="$HOME/.gemini/hooks" |
|
016a29f…
|
lmata
|
15 |
export GEMINI_SETTINGS_JSON="$HOME/.gemini/settings.json" |
|
016a29f…
|
lmata
|
16 |
export GEMINI_BIN_DIR="$HOME/.local/bin" |
|
016a29f…
|
lmata
|
17 |
export CLAUDE_HOOKS_DIR="$HOME/.claude/hooks" |
|
016a29f…
|
lmata
|
18 |
export CLAUDE_SETTINGS_JSON="$HOME/.claude/settings.json" |
|
016a29f…
|
lmata
|
19 |
export CLAUDE_BIN_DIR="$HOME/.local/bin" |
|
016a29f…
|
lmata
|
20 |
|
|
016a29f…
|
lmata
|
21 |
printf 'Smoke testing installers in %s...\n' "$TEMP_HOME" |
|
016a29f…
|
lmata
|
22 |
|
|
b8ce843…
|
lmata
|
23 |
mkdir -p "$HOME/.config" |
|
b8ce843…
|
lmata
|
24 |
cat > "$SCUTTLEBOT_CONFIG_FILE" <<'EOF' |
|
b8ce843…
|
lmata
|
25 |
SCUTTLEBOT_IRC_PASS=stale-pass |
|
b8ce843…
|
lmata
|
26 |
EOF |
|
b8ce843…
|
lmata
|
27 |
|
|
016a29f…
|
lmata
|
28 |
# Mock binaries |
|
016a29f…
|
lmata
|
29 |
mkdir -p "$HOME/.local/bin" |
|
016a29f…
|
lmata
|
30 |
touch "$HOME/.local/bin/codex" "$HOME/.local/bin/gemini" "$HOME/.local/bin/claude" |
|
016a29f…
|
lmata
|
31 |
chmod +x "$HOME/.local/bin/codex" "$HOME/.local/bin/gemini" "$HOME/.local/bin/claude" |
|
016a29f…
|
lmata
|
32 |
export PATH="$HOME/.local/bin:$PATH" |
|
016a29f…
|
lmata
|
33 |
|
|
016a29f…
|
lmata
|
34 |
# 1. Codex |
|
016a29f…
|
lmata
|
35 |
printf 'Testing Codex installer...\n' |
|
016a29f…
|
lmata
|
36 |
bash "$REPO_ROOT/skills/openai-relay/scripts/install-codex-relay.sh" \ |
|
016a29f…
|
lmata
|
37 |
--url http://localhost:8080 \ |
|
016a29f…
|
lmata
|
38 |
--token "test-token" \ |
|
1d3caa2…
|
lmata
|
39 |
--channel general \ |
|
1d3caa2…
|
lmata
|
40 |
--channels general,task-42 |
|
016a29f…
|
lmata
|
41 |
|
|
016a29f…
|
lmata
|
42 |
# Verify files |
|
016a29f…
|
lmata
|
43 |
[ -f "$HOME/.codex/hooks/scuttlebot-post.sh" ] |
|
016a29f…
|
lmata
|
44 |
[ -f "$HOME/.codex/hooks/scuttlebot-check.sh" ] |
|
016a29f…
|
lmata
|
45 |
[ -f "$HOME/.codex/hooks.json" ] |
|
016a29f…
|
lmata
|
46 |
[ -f "$HOME/.codex/config.toml" ] |
|
016a29f…
|
lmata
|
47 |
[ -f "$HOME/.local/bin/codex-relay" ] |
|
016a29f…
|
lmata
|
48 |
[ -f "$HOME/.config/scuttlebot-relay.env" ] |
|
b8ce843…
|
lmata
|
49 |
! grep -q '^SCUTTLEBOT_IRC_PASS=' "$SCUTTLEBOT_CONFIG_FILE" |
|
b8ce843…
|
lmata
|
50 |
grep -q '^SCUTTLEBOT_IRC_DELETE_ON_CLOSE=1$' "$SCUTTLEBOT_CONFIG_FILE" |
|
1d3caa2…
|
lmata
|
51 |
grep -q '^SCUTTLEBOT_CHANNELS=general,task-42$' "$SCUTTLEBOT_CONFIG_FILE" |
|
016a29f…
|
lmata
|
52 |
|
|
016a29f…
|
lmata
|
53 |
# 2. Gemini |
|
016a29f…
|
lmata
|
54 |
printf 'Testing Gemini installer...\n' |
|
016a29f…
|
lmata
|
55 |
bash "$REPO_ROOT/skills/gemini-relay/scripts/install-gemini-relay.sh" \ |
|
016a29f…
|
lmata
|
56 |
--url http://localhost:8080 \ |
|
016a29f…
|
lmata
|
57 |
--token "test-token" \ |
|
b8ce843…
|
lmata
|
58 |
--channel general \ |
|
1d3caa2…
|
lmata
|
59 |
--channels general,release \ |
|
b8ce843…
|
lmata
|
60 |
--irc-pass "gemini-fixed" |
|
016a29f…
|
lmata
|
61 |
|
|
016a29f…
|
lmata
|
62 |
# Verify files |
|
016a29f…
|
lmata
|
63 |
[ -f "$HOME/.gemini/hooks/scuttlebot-post.sh" ] |
|
016a29f…
|
lmata
|
64 |
[ -f "$HOME/.gemini/hooks/scuttlebot-check.sh" ] |
|
016a29f…
|
lmata
|
65 |
[ -f "$HOME/.gemini/settings.json" ] |
|
016a29f…
|
lmata
|
66 |
[ -f "$HOME/.local/bin/gemini-relay" ] |
|
b8ce843…
|
lmata
|
67 |
grep -q '^SCUTTLEBOT_IRC_PASS=gemini-fixed$' "$SCUTTLEBOT_CONFIG_FILE" |
|
1d3caa2…
|
lmata
|
68 |
grep -q '^SCUTTLEBOT_CHANNELS=general,release$' "$SCUTTLEBOT_CONFIG_FILE" |
|
b8ce843…
|
lmata
|
69 |
|
|
b8ce843…
|
lmata
|
70 |
printf 'Testing Gemini auto-register scrub...\n' |
|
b8ce843…
|
lmata
|
71 |
bash "$REPO_ROOT/skills/gemini-relay/scripts/install-gemini-relay.sh" \ |
|
b8ce843…
|
lmata
|
72 |
--channel general \ |
|
b8ce843…
|
lmata
|
73 |
--auto-register |
|
b8ce843…
|
lmata
|
74 |
! grep -q '^SCUTTLEBOT_IRC_PASS=' "$SCUTTLEBOT_CONFIG_FILE" |
|
016a29f…
|
lmata
|
75 |
|
|
016a29f…
|
lmata
|
76 |
# 3. Claude |
|
016a29f…
|
lmata
|
77 |
printf 'Testing Claude installer...\n' |
|
016a29f…
|
lmata
|
78 |
bash "$REPO_ROOT/skills/scuttlebot-relay/scripts/install-claude-relay.sh" \ |
|
016a29f…
|
lmata
|
79 |
--url http://localhost:8080 \ |
|
016a29f…
|
lmata
|
80 |
--token "test-token" \ |
|
b8ce843…
|
lmata
|
81 |
--channel general \ |
|
1d3caa2…
|
lmata
|
82 |
--channels general,ops \ |
|
b8ce843…
|
lmata
|
83 |
--transport irc \ |
|
b8ce843…
|
lmata
|
84 |
--irc-addr 127.0.0.1:6667 \ |
|
b8ce843…
|
lmata
|
85 |
--irc-pass "claude-fixed" |
|
016a29f…
|
lmata
|
86 |
|
|
016a29f…
|
lmata
|
87 |
# Verify files |
|
016a29f…
|
lmata
|
88 |
[ -f "$HOME/.claude/hooks/scuttlebot-post.sh" ] |
|
016a29f…
|
lmata
|
89 |
[ -f "$HOME/.claude/hooks/scuttlebot-check.sh" ] |
|
016a29f…
|
lmata
|
90 |
[ -f "$HOME/.claude/settings.json" ] |
|
016a29f…
|
lmata
|
91 |
[ -f "$HOME/.local/bin/claude-relay" ] |
|
b8ce843…
|
lmata
|
92 |
grep -q '^SCUTTLEBOT_IRC_PASS=claude-fixed$' "$SCUTTLEBOT_CONFIG_FILE" |
|
b8ce843…
|
lmata
|
93 |
grep -q '^SCUTTLEBOT_TRANSPORT=irc$' "$SCUTTLEBOT_CONFIG_FILE" |
|
1d3caa2…
|
lmata
|
94 |
grep -q '^SCUTTLEBOT_CHANNELS=general,ops$' "$SCUTTLEBOT_CONFIG_FILE" |
|
b8ce843…
|
lmata
|
95 |
|
|
b8ce843…
|
lmata
|
96 |
printf 'Testing Claude auto-register scrub...\n' |
|
b8ce843…
|
lmata
|
97 |
bash "$REPO_ROOT/skills/scuttlebot-relay/scripts/install-claude-relay.sh" \ |
|
b8ce843…
|
lmata
|
98 |
--channel general \ |
|
b8ce843…
|
lmata
|
99 |
--auto-register |
|
b8ce843…
|
lmata
|
100 |
! grep -q '^SCUTTLEBOT_IRC_PASS=' "$SCUTTLEBOT_CONFIG_FILE" |
|
016a29f…
|
lmata
|
101 |
|
|
016a29f…
|
lmata
|
102 |
printf 'ALL INSTALLERS PASSED SMOKE TEST\n' |
|
016a29f…
|
lmata
|
103 |
chmod -R +w "$TEMP_HOME" |
|
016a29f…
|
lmata
|
104 |
rm -rf "$TEMP_HOME" |