-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·172 lines (146 loc) · 4.34 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·172 lines (146 loc) · 4.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#!/bin/bash
# SpecOps Universal Setup Script
# Detects installed AI coding tools and installs SpecOps for selected platforms
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
echo "SpecOps Setup"
echo "===================="
echo ""
# Detect available platforms
detect_platforms() {
DETECTED=""
# Claude Code
if [ -d "$HOME/.claude" ] || command -v claude &>/dev/null; then
DETECTED="$DETECTED claude"
fi
# Cursor
if [ -d ".cursor" ] || command -v cursor &>/dev/null || \
[ -d "/Applications/Cursor.app" ] || [ -d "$HOME/Applications/Cursor.app" ]; then
DETECTED="$DETECTED cursor"
fi
# OpenAI Codex
if command -v codex &>/dev/null; then
DETECTED="$DETECTED codex"
fi
# GitHub Copilot
if command -v gh &>/dev/null && gh copilot --help &>/dev/null 2>&1 || \
[ -f ".github/copilot-instructions.md" ] || [ -d ".github/instructions" ]; then
DETECTED="$DETECTED copilot"
fi
# Google Antigravity
if command -v antigravity &>/dev/null || \
[ -d "/Applications/Antigravity.app" ] || [ -d "$HOME/Applications/Antigravity.app" ] || \
[ -d ".agents" ]; then
DETECTED="$DETECTED antigravity"
fi
echo "$DETECTED"
}
echo "Detecting installed AI coding tools..."
DETECTED=$(detect_platforms)
if [ -z "$DETECTED" ]; then
echo "No AI coding tools detected automatically."
echo ""
fi
echo ""
echo "Which platform(s) would you like to install SpecOps for?"
echo ""
echo "1) Claude Code"
echo "2) Cursor"
echo "3) OpenAI Codex"
echo "4) GitHub Copilot"
echo "5) Google Antigravity"
echo "6) All detected platforms"
echo "7) All platforms"
echo ""
# Show detected platforms
if [ -n "$DETECTED" ]; then
echo "Detected:$DETECTED"
echo ""
fi
read -rp "Select option(s) [comma-separated, e.g. 1,2]: " platform_choice
SELECTED=""
IFS=',' read -ra CHOICES <<< "$platform_choice"
for choice in "${CHOICES[@]}"; do
choice=$(echo "$choice" | tr -d ' ')
case $choice in
1) SELECTED="$SELECTED claude" ;;
2) SELECTED="$SELECTED cursor" ;;
3) SELECTED="$SELECTED codex" ;;
4) SELECTED="$SELECTED copilot" ;;
5) SELECTED="$SELECTED antigravity" ;;
6) SELECTED="$DETECTED" ;;
7) SELECTED=" claude cursor codex copilot antigravity" ;;
*)
echo "Invalid option: $choice"
exit 1
;;
esac
done
if [ -z "$SELECTED" ]; then
echo "No platforms selected. Exiting."
exit 1
fi
echo ""
# Install for each selected platform
for platform in $SELECTED; do
platform=$(echo "$platform" | tr -d ' ')
installer="$SCRIPT_DIR/platforms/$platform/install.sh"
if [ -f "$installer" ]; then
echo "----------------------------------------"
echo "Installing for: $platform"
echo "----------------------------------------"
bash "$installer"
echo ""
else
echo "WARNING: No installer found for $platform at $installer"
fi
done
# Setup project configuration
echo "----------------------------------------"
read -rp "Would you like to create a .specops.json config in the current directory? [y/N]: " config_choice
if [[ $config_choice =~ ^[Yy]$ ]]; then
if [ -f ".specops.json" ]; then
echo ".specops.json already exists. Skipping."
else
echo ""
echo "Select a configuration template:"
echo "1) Minimal (just specsDir)"
echo "2) Standard (team conventions, review required)"
echo "3) Full (all options configured)"
read -rp "Select option [1-3]: " config_template
case $config_template in
1)
cp "$SCRIPT_DIR/examples/.specops.minimal.json" .specops.json
;;
2)
cp "$SCRIPT_DIR/examples/.specops.json" .specops.json
;;
3)
cp "$SCRIPT_DIR/examples/.specops.full.json" .specops.json
;;
*)
echo "Invalid option. Skipping config creation."
;;
esac
if [ -f ".specops.json" ]; then
echo "Created .specops.json"
echo "Edit .specops.json to customize for your project"
fi
fi
fi
echo ""
echo "Setup complete!"
echo ""
echo "Next steps:"
echo "1. See platform-specific README for usage instructions:"
for platform in $SELECTED; do
platform=$(echo "$platform" | tr -d ' ')
echo " - platforms/$platform/README.md"
done
echo "2. Customize .specops.json for your team"
echo "3. Read README.md for full documentation"
echo ""
echo "For team sharing:"
echo "- Share this repository URL: https://github.com/sanmak/specops.git"
echo "- Team members run: bash setup.sh"
echo ""