8507f087ba
Firefox: captura del perfil snap (marcadores, contrasenas, extensiones, cookies, contenedores, prefs; excluye caches y storage de sitios) y modulo de restauracion idempotente. VSCodium: pasa a instalacion nativa via repo apt oficial (clave GPG + sources) en lugar de flatpak; captura settings, snippets, perfiles, estado de workspaces y lista de extensiones (excluye cache de redhat.java). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
source "$stpRoot/lib/log.sh"
|
|
source "$stpRoot/lib/utils.sh"
|
|
|
|
readonly firefoxCommonDirectory="$HOME/snap/firefox/common"
|
|
readonly firefoxProfilesDirectory="$firefoxCommonDirectory/.mozilla/firefox"
|
|
readonly firefoxArchive="$stpRoot/secrets/firefoxProfile.zip"
|
|
|
|
firefoxIsInstalled() {
|
|
util::isSnapInstalled "firefox"
|
|
}
|
|
|
|
firefoxProfileExists() {
|
|
[[ -f "$firefoxProfilesDirectory/profiles.ini" ]]
|
|
}
|
|
|
|
installFirefox() {
|
|
sudo snap install firefox
|
|
log::ok "Firefox instalado"
|
|
}
|
|
|
|
restoreProfile() {
|
|
log::info "Restaurando perfil desde secrets/firefoxProfile.zip..."
|
|
mkdir -p "$firefoxCommonDirectory"
|
|
unzip -qo "$firefoxArchive" -d "$firefoxCommonDirectory"
|
|
log::ok "Perfil restaurado en: $firefoxProfilesDirectory"
|
|
}
|
|
|
|
if firefoxIsInstalled; then
|
|
log::info "Firefox ya instalado"
|
|
else
|
|
installFirefox
|
|
fi
|
|
|
|
if [[ ! -f "$firefoxArchive" ]]; then
|
|
log::info "Sin respaldo de perfil (secrets/firefoxProfile.zip), salteando restauración"
|
|
exit 0
|
|
fi
|
|
|
|
if firefoxProfileExists; then
|
|
log::info "Perfil de Firefox ya existe, salteando restauración"
|
|
exit 0
|
|
fi
|
|
|
|
restoreProfile
|