Files
claudetools/scripts/setup-new-machine.sh
Mike Swanson fce1345a40 [Fix] Remove all emoji violations from code files
- Replaced emojis with ASCII text markers ([OK], [ERROR], [WARNING], etc.)
- Fixed 38+ violations across 20 files (7 Python, 6 shell scripts, 6 hooks, 1 API)
- All modified files pass syntax verification
- Conforms to CODING_GUIDELINES.md NO EMOJIS rule

Details:
- Python test files: check_record_counts.py, test_*.py (31 fixes)
- API utils: context_compression.py regex pattern updated
- Shell scripts: setup/test/install/upgrade scripts (64+ fixes)
- Hook scripts: task-complete, user-prompt-submit, sync-contexts (10 fixes)

Verification: All files pass syntax checks (python -m py_compile, bash -n)
Report: FIXES_APPLIED.md contains complete change log

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-17 13:06:33 -07:00

103 lines
2.8 KiB
Bash

#!/bin/bash
#
# ClaudeTools New Machine Setup
# Quick setup for new machines (30 seconds)
#
# Usage: bash scripts/setup-new-machine.sh
#
set -e
echo "=========================================="
echo "ClaudeTools New Machine Setup"
echo "=========================================="
echo ""
# Detect project root
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
CONFIG_FILE="$PROJECT_ROOT/.claude/context-recall-config.env"
echo "Project root: $PROJECT_ROOT"
echo ""
# Check if template exists in shared data
SHARED_TEMPLATE="C:/Users/MikeSwanson/claude-projects/shared-data/context-recall-config.env"
if [ ! -f "$SHARED_TEMPLATE" ]; then
echo "[ERROR] ERROR: Template not found at $SHARED_TEMPLATE"
exit 1
fi
# Copy template
echo "[1/3] Copying configuration template..."
cp "$SHARED_TEMPLATE" "$CONFIG_FILE"
echo "[OK] Configuration file created"
echo ""
# Get project ID from git
echo "[2/3] Detecting project ID..."
PROJECT_ID=$(git config --local claude.projectid 2>/dev/null || echo "")
if [ -z "$PROJECT_ID" ]; then
# Generate from git remote
GIT_REMOTE=$(git config --get remote.origin.url 2>/dev/null || echo "")
if [ -n "$GIT_REMOTE" ]; then
PROJECT_ID=$(echo -n "$GIT_REMOTE" | md5sum | cut -d' ' -f1)
git config --local claude.projectid "$PROJECT_ID"
echo "[OK] Generated project ID: $PROJECT_ID"
else
echo "[WARNING] Could not detect project ID"
fi
else
echo "[OK] Project ID: $PROJECT_ID"
fi
# Update config with project ID
if [ -n "$PROJECT_ID" ]; then
sed -i "s|CLAUDE_PROJECT_ID=.*|CLAUDE_PROJECT_ID=$PROJECT_ID|" "$CONFIG_FILE"
fi
echo ""
# Get JWT token
echo "[3/3] Obtaining JWT token..."
echo "Enter API credentials:"
read -p "Username [admin]: " API_USERNAME
API_USERNAME="${API_USERNAME:-admin}"
read -sp "Password: " API_PASSWORD
echo ""
if [ -z "$API_PASSWORD" ]; then
echo "[ERROR] ERROR: Password required"
exit 1
fi
JWT_TOKEN=$(curl -s -X POST http://172.16.3.30:8001/api/auth/login \
-H "Content-Type: application/json" \
-d "{\"username\": \"$API_USERNAME\", \"password\": \"$API_PASSWORD\"}" | \
grep -o '"access_token":"[^"]*' | sed 's/"access_token":"//')
if [ -z "$JWT_TOKEN" ]; then
echo "[ERROR] ERROR: Failed to get JWT token"
exit 1
fi
# Update config with token
sed -i "s|JWT_TOKEN=.*|JWT_TOKEN=$JWT_TOKEN|" "$CONFIG_FILE"
echo "[OK] JWT token obtained and saved"
echo ""
echo "=========================================="
echo "Setup Complete!"
echo "=========================================="
echo ""
echo "Configuration file: $CONFIG_FILE"
echo "API URL: http://172.16.3.30:8001"
echo "Project ID: $PROJECT_ID"
echo ""
echo "You can now use Claude Code normally."
echo "Context will be automatically recalled from the central server."
echo ""