- 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>
45 lines
1,004 B
Bash
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"
|
|
}
|