Repository navigation
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·77 lines (64 loc) · 2.17 KB
/
Copy pathinstall.sh
File metadata and controls
executable file
·77 lines (64 loc) · 2.17 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
#!/bin/bash
set -euo pipefail
# Claude Code Starter Kit Installer
# Usage: ./install.sh [template] [target-directory]
TEMPLATE="${1:-base}"
TARGET_DIR="${2:-.}"
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo ""
echo "🚀 Claude Code Starter Kit Installer"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Validate target directory
if [ ! -d "$TARGET_DIR" ]; then
echo "✔️ Creating target directory: $TARGET_DIR"
mkdir -p "$TARGET_DIR"
fi
# Create .claude directory structure
CLAUDE_DIR="$TARGET_DIR/.claude"
mkdir -p "$CLAUDE_DIR/hooks"
echo "📁 Installing to: $CLAUDE_DIR"
echo ""
# Copy hooks
echo "📦 Installing hooks..."
for hook in "$SCRIPT_DIR/hooks/"*.sh; do
hook_name=$(basename "$hook")
cp -v "$hook" "$CLAUDE_DIR/hooks/$hook_name"
chmod +x "$CLAUDE_DIR/hooks/$hook_name"
done
echo ""
# Install settings
echo "⚙️ Configuring settings (template: $TEMPLATE)..."
SETTINGS_FILE="$CLAUDE_DIR/settings.json"
BASE_SETTINGS="$SCRIPT_DIR/templates/settings.base.json"
TEMPLATE_SETTINGS="$SCRIPT_DIR/templates/settings.$TEMPLATE.json"
if [ ! -f "$BASE_SETTINGS" ]; then
echo "❌ Error: Base settings template not found at $BASE_SETTINGS"
exit 1
fi
# Copy base settings
cp "$BASE_SETTINGS" "$SETTINGS_FILE"
# Merge template-specific settings if exists
if [ -f "$TEMPLATE_SETTINGS" ] && [ "$TEMPLATE" != "base" ]; then
echo " Merging $TEMPLATE template..."
if command -v jq &> /dev/null; then
jq -s '.[0] * .[1]' "$SETTINGS_FILE" "$TEMPLATE_SETTINGS" > "$SETTINGS_FILE.tmp"
mv "$SETTINGS_FILE.tmp" "$SETTINGS_FILE"
echo " ✅ Settings merged"
else
echo " ⚠️ Warning: jq not found. Install jq for template merging: brew install jq"
echo " Falling back to base template only"
fi
fi
echo ""
echo "✅ Installation complete!"
echo ""
echo "📋 Installed:"
echo " - $(ls -1 "$CLAUDE_DIR/hooks" | wc -l | tr -d ' ') hook scripts"
echo " - Settings: $SETTINGS_FILE"
echo ""
echo "📖 Next steps:"
echo " 1. Review settings: cat $SETTINGS_FILE"
echo " 2. Test hooks: git status"
echo " 3. Start Claude Code session"
echo ""