From f86e4244912dbdaf437c72093e51fe52c4413cd5 Mon Sep 17 00:00:00 2001 From: Josevi Date: Sun, 20 Sep 2026 23:01:17 +0200 Subject: [PATCH] =?UTF-8?q?kde/setup.sh:=20pasos=20no=20cr=C3=ADticos=20no?= =?UTF-8?q?=20abortan=20la=20instalaci=C3=B3n=20completa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5 --- kde/setup.sh | 43 ++++++++++++++++++++++++--------------- shared/packages-common.sh | 14 +++++++++++++ 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/kde/setup.sh b/kde/setup.sh index 56c0b62..47b4ccd 100755 --- a/kde/setup.sh +++ b/kde/setup.sh @@ -85,20 +85,21 @@ install_aur "${AUR_COMMON[@]}" \ plasma6-themes-layan-git tela-icon-theme layan-cursor-theme-git \ plasma6-applets-appgrid plasma6-wallpapers-smart-video-wallpaper-reborn pamac-tray-plasma-git \ yin-yang kwin-decoration-sierra-breeze-enhanced-git -install_helpwire -install_claude_code +run_optional "install_helpwire" install_helpwire +run_optional "install_claude_code" install_claude_code -echo ">> Instalando Flatpaks comunes..." -install_flatpaks "${FLATPAK_COMMON[@]}" +run_optional "install_flatpaks" install_flatpaks "${FLATPAK_COMMON[@]}" -echo ">> Servicios..." -systemctl enable sddm -systemctl enable NetworkManager -systemctl enable bluetooth -systemctl enable "syncthing@$INSTALL_USER.service" -systemctl enable tailscaled -systemctl enable power-profiles-daemon -systemctl enable cpupower +enable_services() { + systemctl enable sddm + systemctl enable NetworkManager + systemctl enable bluetooth + systemctl enable "syncthing@$INSTALL_USER.service" + systemctl enable tailscaled + systemctl enable power-profiles-daemon + systemctl enable cpupower +} +run_optional "enable_services" enable_services # Tema: Layan (global theme) + iconos Tela + cursores Bibata-Modern-Classic # (bibata-cursor-theme-bin en AUR_COMMON), vía AUR (plasma6-themes-layan-git/ @@ -114,11 +115,14 @@ systemctl enable cpupower echo ">> chezmoi init --apply (repo arch-configs)..." REMOTE="$GITEA/arch-configs.git" [[ -n "${GITEA_TOKEN:-}" ]] && REMOTE="https://$INSTALL_USER:$GITEA_TOKEN@gitea.josevi.ovh/josevi/arch-configs.git" -as_user "export GIT_NAME='$GIT_NAME' GIT_EMAIL='$GIT_EMAIL'; \ - chezmoi init --apply '$REMOTE'" +chezmoi_init_apply() { + as_user "export GIT_NAME='$GIT_NAME' GIT_EMAIL='$GIT_EMAIL'; \ + chezmoi init --apply '$REMOTE'" +} +run_optional "chezmoi init --apply" chezmoi_init_apply # --- pkgsync: sincronización de paquetes (repo arch-setup) ----------------- -install_pkgsync +run_optional "install_pkgsync" install_pkgsync # Snapper AL FINAL, no tras install_bootloader: snap-pac crea un snapshot # pre+post por cada transacción de pacman/paru en cuanto existe el config de @@ -132,7 +136,14 @@ install_pkgsync # un 'pacman -Syu' real ya con el sistema arrancado, que es para lo que existe # el rollback. echo ">> Configurando rollback de actualizaciones (snapper)..." -configure_btrfs_rollback +run_optional "configure_btrfs_rollback" configure_btrfs_rollback rm -f /etc/sudoers.d/99-setup-nopasswd + +if ((${#FAILED_STEPS[@]})); then + echo + echo "⚠️ Instalación completada con avisos. Pasos que fallaron y necesitan revisión manual:" + printf ' - %s\n' "${FAILED_STEPS[@]}" +fi + echo ">> Configuración de KDE completada." diff --git a/shared/packages-common.sh b/shared/packages-common.sh index 4672353..cb6111a 100644 --- a/shared/packages-common.sh +++ b/shared/packages-common.sh @@ -104,6 +104,20 @@ AUR_COMMON=( ) # --- helpers usados por los setup.sh -------------------------------------- + +# Ejecuta un paso NO crítico: si falla, lo registra en FAILED_STEPS y +# CONTINÚA en vez de abortar todo el script (set -e no debe tirar una +# instalación de 1h por un mirror caído o un D-Bus que falta en el chroot). +FAILED_STEPS=() +run_optional() { + local desc="$1"; shift + echo ">> $desc" + if ! "$@"; then + FAILED_STEPS+=("$desc") + echo "!! Falló (no crítico, revisa a mano luego): $desc" >&2 + fi +} + install_pacman() { pacman -S --needed --noconfirm "$@"; } # paru se construye como usuario normal (makepkg no corre como root).