ContextStudioWizard/lib/project.sh
Karamelmar 699087f08c Redesign wizard UI with gum (charmbracelet)
- Bootstrap gum automatically on first run (Arch/Debian/RHEL/Fedora/SUSE)
- utils.sh: replace all bash color helpers with gum equivalents
  - gum input for text prompts (with value pre-fill for defaults)
  - gum choose for selection menus
  - gum confirm for yes/no
  - gum spin for long-running operations
  - gum style/log for output (catppuccin mocha palette)
  - gum style for banners and summary box
- core.sh: spinner on git clone/pull
- workflow.sh: spinner on git clone
- prereqs.sh: spinner on package installs
- wizard.sh: double-border welcome banner, rounded summary box,
  success banner with next-steps panel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 13:02:42 +01:00

45 lines
1,004 B
Bash

#!/usr/bin/env bash
# project.sh — create project directory and devcontainer
WIZARD_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
create_project_structure() {
local project_dir="$1"
local project_name="$2"
mkdir -p "$project_dir/src"
mkdir -p "$project_dir/.devcontainer"
cat > "$project_dir/.gitignore" <<'GITIGNORE'
node_modules/
dist/
build/
*.AppImage
*.dmg
*.exe
.env
.env.local
workflow/data/registry.db
workflow/users/*/session-history/
*.log
.DS_Store
Thumbs.db
GITIGNORE
success "Project structure created"
}
create_devcontainer() {
local project_dir="$1"
local project_name="$2"
local slug
slug="$(slugify "$project_name")"
sed "s/{{PROJECT_NAME}}/$project_name/g; s/{{PROJECT_SLUG}}/$slug/g" \
"$WIZARD_DIR/templates/devcontainer.json" \
> "$project_dir/.devcontainer/devcontainer.json"
cp "$WIZARD_DIR/templates/Dockerfile" "$project_dir/.devcontainer/Dockerfile"
success "Devcontainer config written"
}