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>
This commit is contained in:
parent
8a82d27dae
commit
699087f08c
6 changed files with 267 additions and 243 deletions
|
|
@ -7,74 +7,24 @@ create_project_structure() {
|
|||
local project_dir="$1"
|
||||
local project_name="$2"
|
||||
|
||||
info "Creating project structure at $project_dir..."
|
||||
|
||||
mkdir -p "$project_dir/src"
|
||||
mkdir -p "$project_dir/.devcontainer"
|
||||
|
||||
# .gitignore
|
||||
cat > "$project_dir/.gitignore" <<'EOF'
|
||||
# Dependencies
|
||||
cat > "$project_dir/.gitignore" <<'GITIGNORE'
|
||||
node_modules/
|
||||
.pnp/
|
||||
.pnp.js
|
||||
|
||||
# Build outputs
|
||||
dist/
|
||||
build/
|
||||
*.AppImage
|
||||
*.dmg
|
||||
*.exe
|
||||
|
||||
# Environment
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Runtime data
|
||||
workflow/data/registry.db
|
||||
workflow/users/*/session-history/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
|
||||
# OS
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
EOF
|
||||
|
||||
# README
|
||||
cat > "$project_dir/README.md" <<EOF
|
||||
# $project_name
|
||||
|
||||
## Quick Start
|
||||
|
||||
### First time setup
|
||||
\`\`\`bash
|
||||
# Open in devcontainer (VS Code)
|
||||
code .
|
||||
# → Reopen in Container
|
||||
|
||||
# Or via CLI
|
||||
docker build -t $( slugify "$project_name" ) .devcontainer/
|
||||
docker run -it --rm \\
|
||||
-v "\$(pwd)":/workspace \\
|
||||
-v "\$HOME/.context-studio/core":/opt/context-studio/core \\
|
||||
-e ANTHROPIC_API_KEY="\$ANTHROPIC_API_KEY" \\
|
||||
$( slugify "$project_name" ) bash
|
||||
\`\`\`
|
||||
|
||||
### Start Context Studio
|
||||
\`\`\`bash
|
||||
CS_WORKFLOW_DIR=/workspace/workflow node /opt/context-studio/core/core/start.js
|
||||
\`\`\`
|
||||
|
||||
### Start headless (no Electron UI)
|
||||
\`\`\`bash
|
||||
CS_WORKFLOW_DIR=/workspace/workflow node /opt/context-studio/core/core/start.js --ui-mode=headless
|
||||
\`\`\`
|
||||
EOF
|
||||
GITIGNORE
|
||||
|
||||
success "Project structure created"
|
||||
}
|
||||
|
|
@ -85,17 +35,11 @@ create_devcontainer() {
|
|||
local slug
|
||||
slug="$(slugify "$project_name")"
|
||||
|
||||
info "Generating devcontainer config..."
|
||||
|
||||
# Dockerfile
|
||||
sed "s/{{PROJECT_SLUG}}/$slug/g" \
|
||||
"$WIZARD_DIR/templates/Dockerfile" \
|
||||
> "$project_dir/.devcontainer/Dockerfile"
|
||||
|
||||
# devcontainer.json
|
||||
sed "s/{{PROJECT_NAME}}/$project_name/g; s/{{PROJECT_SLUG}}/$slug/g" \
|
||||
"$WIZARD_DIR/templates/devcontainer.json" \
|
||||
> "$project_dir/.devcontainer/devcontainer.json"
|
||||
|
||||
success "Devcontainer config written to $project_dir/.devcontainer/"
|
||||
cp "$WIZARD_DIR/templates/Dockerfile" "$project_dir/.devcontainer/Dockerfile"
|
||||
|
||||
success "Devcontainer config written"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue