claude-meta/scripts/init-project.sh

46 lines
1.1 KiB
Bash

#!/bin/bash
# init-project.sh — Bootstrap a new project with Claude config
set -e
if [ $# -lt 2 ]; then
echo "Usage: init-project.sh <project-path> <project-name>"
exit 1
fi
PROJECT_PATH="$1"
PROJECT_NAME="$2"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_ROOT="$(dirname "$SCRIPT_DIR")"
TEMPLATE_DIR="$REPO_ROOT/templates/generic"
if [ ! -d "$PROJECT_PATH" ]; then
echo "ERROR: Project path does not exist: $PROJECT_PATH"
exit 1
fi
TARGET_CLAUDE="$PROJECT_PATH/.claude"
TARGET_PLANS="$PROJECT_PATH/plans"
if [ -d "$TARGET_CLAUDE" ]; then
echo "WARNING: .claude/ already exists in $PROJECT_PATH"
read -p "Overwrite? (y/N) " response
[ "$response" != "y" ] && echo "Aborted." && exit 0
fi
echo "Initializing project: $PROJECT_NAME"
cp -r "$TEMPLATE_DIR/.claude" "$TARGET_CLAUDE"
mkdir -p "$TARGET_PLANS"
# Replace placeholders
sed -i "s/{{PROJECT_NAME}}/$PROJECT_NAME/g" "$TARGET_CLAUDE/CLAUDE.md"
echo ""
echo "Done! Created:"
echo " $TARGET_CLAUDE/CLAUDE.md"
echo " $TARGET_CLAUDE/settings.json"
echo " $TARGET_PLANS/"
echo ""
echo "Next: Edit $TARGET_CLAUDE/CLAUDE.md with project-specific info."