sp-hydra-veil-core/lib/steps/repos.sh
2026-06-02 07:53:09 -05:00

94 lines
No EOL
2.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# lib/steps/repos.sh — clonar repositorios + generar .env
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() {
for name in essentials cli gui; do
local url="${REPO_URLS[$name]}"
local branch="${REPO_BRANCHES[$name]}"
local dest="${REPO_DIRS[$name]}"
if [ -d "$dest/.git" ]; then
log_warn "Repo ya existe: ${dest}"
if ask_confirm "Eliminar y re-clonar ${name}?"; then
rm -rf "$dest"
else
log_skip "Re-clone omitido — usando ${dest}"
continue
fi
fi
start_spinner "Clonando ${name} (branch: ${branch})..."
if git clone --branch "$branch" "$url" "$dest" &>/dev/null; then
stop_spinner "${name} clonado → ${dest}"
else
stop_spinner
log_error "git clone falló: ${url}"
exit 1
fi
chmod 700 "$dest"
done
}
_setup_env() {
local env_file="$HV_CORE/.env"
local example_file="$HV_CORE/.env.example"
if [ ! -f "$example_file" ]; then
log_error ".env.example no encontrado: ${example_file}"
exit 1
fi
if [ -f "$env_file" ]; then
log_warn ".env ya existe — sobreescribiendo"
fi
echo ""
printf " ${DIM}Completá las variables. ENTER = dejar vacío.${RESET}\n"
print_divider
echo ""
# APP_ENV
select_option \
"APP_ENV — entorno de la aplicación" \
"local desarrollo / testing" \
"production producción / dominio real"
case "$SELECT_RESULT" in
0) _app_env="local" ;;
1) _app_env="production" ;;
*) _app_env="production" ;;
esac
echo ""
printf " ${BCYAN}┌─${RESET} ${BWHITE}SP_API_BASE_URL_PRODUCTION${RESET} ${DIM}e.g. https://fake.simplifiedprivacy.org/api/v1${RESET}\n"
printf " ${BCYAN}${RESET} "
read -r _api_url < /dev/tty
cat > "$env_file" << EOF
APP_ENV=${_app_env}
SP_API_BASE_URL_LOCAL=http://simplifiedprivacy.test/api/v1
SP_API_BASE_URL_PRODUCTION=${_api_url}
# ── Generado por el installer ─────────────────────────────────────────────
HV_CORE_HOME=${HV_CORE}
INSTALL_DIR=${HOME}
CORE_DIR=${HV_CORE}
EOF
chmod 600 "$env_file"
log_ok "APP_ENV=${_app_env}"
[ -n "$_api_url" ] && log_ok "SP_API_BASE_URL_PRODUCTION=${_api_url}" || label_skip "SP_API_BASE_URL_PRODUCTION — vacío"
log_ok "INSTALL_DIR=${HOME}"
log_ok ".env escrito → ${env_file}"
}