diff --git a/lib/steps/repos.sh b/lib/steps/repos.sh index 4fee556..3c35917 100644 --- a/lib/steps/repos.sh +++ b/lib/steps/repos.sh @@ -3,73 +3,50 @@ step_repos() { print_section "Repositories" log_step "Cloning repositories & configuring .env" 2 $TOTAL_STEPS + mkdir -p "$HV_BASE" chmod 700 "$HV_BASE" + _clone_repos _setup_env } _clone_repos() { - echo "[DEBUG] ===============================" - echo "[DEBUG] HV_BASE=$HV_BASE" - echo "[DEBUG] HV_CORE=$HV_CORE" - echo "[DEBUG] REPO_URLS[core]=${REPO_URLS[core]}" - echo "[DEBUG] REPO_BRANCHES[core]=${REPO_BRANCHES[core]}" - echo "[DEBUG] REPO_DIRS[core]=${REPO_DIRS[core]}" - echo "[DEBUG] ===============================" - for name in core essentials cli gui; do local url="${REPO_URLS[$name]}" local branch="${REPO_BRANCHES[$name]}" local dest="${REPO_DIRS[$name]}" - [ "$name" = "core" ] && dest="$HV_CORE" - [ "$name" = "cli" ] && dest="$HV_CLI" - [ "$name" = "essentials" ] && dest="$HV_ESSENTIALS" - [ "$name" = "gui" ] && dest="$HV_GUI" - - echo "[DEBUG] --- name=$name" - echo "[DEBUG] url=$url" - echo "[DEBUG] branch=$branch" - echo "[DEBUG] dest=$dest" if [ -d "$dest/.git" ]; then - echo "[DEBUG] .git EXISTS at $dest — asking re-clone" - log_warn "Repo already exists: ${dest}" + log_warn "Repository already exists: ${dest}" if ask_confirm "Delete and re-clone ${name}?"; then rm -rf "$dest" else log_skip "Re-clone skipped — using ${dest}" continue fi - else - echo "[DEBUG] .git NOT found — proceeding to clone" fi - echo "[DEBUG] running: git clone --branch $branch $url $dest" - if git clone --branch "$branch" "$url" "$dest"; then - echo "[DEBUG] clone SUCCESS" - stop_spinner "${name} cloned → ${dest}" - else - echo "[DEBUG] clone FAILED (exit code $?)" + start_spinner "Cloning ${name} (branch: ${branch})..." + if git clone --branch "$branch" "$url" "$dest" 2>&1 | grep -q "fatal\|error"; then stop_spinner log_error "git clone failed: ${url}" exit 1 fi - + stop_spinner "${name} cloned → ${dest}" chmod 700 "$dest" - echo "[DEBUG] chmod 700 done" done - echo "[DEBUG] _clone_repos finished" + if [ ! -d "$HV_CORE/.git" ]; then + log_error "core repository not cloned successfully" + exit 1 + fi } _setup_env() { local env_file="$HV_CORE/.env" local example_file="$HV_CORE/.env.example" - echo "[DEBUG] _setup_env: example_file=$example_file" - echo "[DEBUG] _setup_env: env_file=$env_file" - if [ ! -f "$example_file" ]; then log_error ".env.example not found: ${example_file}" exit 1