From af065f0defe565dbba5325f2457469dd0c503430 Mon Sep 17 00:00:00 2001 From: Karamelmar Date: Mon, 9 Mar 2026 12:13:37 +0100 Subject: [PATCH] Auto-detect existing projects directory, default to ~/Projects Checks ~/Projects, ~/projects, ~/Dev, ~/Workspace, ~/Code, ~/src etc. Uses the first one that exists; falls back to ~/Projects if none found. Co-Authored-By: Claude Sonnet 4.6 --- wizard.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/wizard.sh b/wizard.sh index 237f228..0419b28 100755 --- a/wizard.sh +++ b/wizard.sh @@ -12,6 +12,18 @@ source "$WIZARD_DIR/lib/core.sh" source "$WIZARD_DIR/lib/project.sh" source "$WIZARD_DIR/lib/workflow.sh" +# ── Find existing projects base dir ─────────────────────────────────────── +find_projects_dir() { + local candidates=("Projects" "projects" "Project" "project" "Dev" "dev" "Workspace" "workspace" "Code" "code" "src" "Src") + for candidate in "${candidates[@]}"; do + if [[ -d "$HOME/$candidate" ]]; then + echo "$HOME/$candidate" + return + fi + done + echo "$HOME/Projects" +} + # ── Project info ─────────────────────────────────────────────────────────── collect_project_info() { header "Project Details" @@ -19,7 +31,9 @@ collect_project_info() { ask PROJECT_NAME "Project name" "" if [[ -z "$PROJECT_NAME" ]]; then die "Project name is required."; fi - local default_dir="$HOME/projects/$(slugify "$PROJECT_NAME")" + local projects_base + projects_base="$(find_projects_dir)" + local default_dir="$projects_base/$(slugify "$PROJECT_NAME")" ask PROJECT_DIR "Project location" "$default_dir" if [[ -z "$PROJECT_DIR" ]]; then die "Project location is required."; fi PROJECT_DIR="${PROJECT_DIR/#\~/$HOME}"