bd78fd9fbe
Modulos de restauracion: - bootstrap: instala yq, age y dependencias base (curl, wget, git, nano, gpg) - ssh: descifra e instala claves SSH desde secrets/sshKeys.tar.gz.age - registry: aplica paquetes apt/snap/flatpak, dotfiles, servicios y configs Docker - thunderbird: instala Thunderbird snap y restaura perfil desde ZIP - claudeCode: configura repositorio apt de Anthropic e instala claude-code - easyEffects: restaura configuracion y presets desde ZIP - wireplumber: restaura dispositivo Bluetooth por defecto y perfiles de audio - cups: restaura impresoras y drivers PPD desde ZIP Scripts de captura (correr antes de push): - scripts/encryptSsh.sh: cifra ~/.ssh con age - scripts/thunderbird/capture.sh: captura perfil de Thunderbird snap - scripts/easyEffects/capture.sh: captura config de EasyEffects flatpak - scripts/wireplumber/capture.sh: captura estado de WirePlumber - scripts/cups/capture.sh: captura impresoras CUPS y PPDs (requiere sudo) Registro de aplicaciones (config/registry.yaml): - 9 paquetes apt, 1 snap (dbeaver-ce), 22 flatpaks incluyendo VSCodium, Bitwarden, Inkscape, LibreOffice, OBS Studio, Nextcloud Desktop, entre otros Secretos incluidos: - secrets/sshKeys.tar.gz.age: claves SSH cifradas con age - secrets/thunderbirdProfile.zip: perfil de Thunderbird sin emails ni cache - secrets/easyEffectsConfig.zip: ajustes y presets de salida de audio - secrets/wireplumberState.zip: estado de audio incluyendo auriculares Bluetooth - secrets/cupsConfig.zip: 5 impresoras configuradas con sus drivers Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
48 lines
1.4 KiB
Markdown
48 lines
1.4 KiB
Markdown
Creá un nuevo módulo STP llamado `$ARGUMENTS`.
|
|
|
|
Seguí estos pasos:
|
|
|
|
1. Creá el archivo `modules/$ARGUMENTS.sh` respetando la guía de estilo de `.claude/style.md`:
|
|
|
|
```bash
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
source "$stpRoot/lib/log.sh"
|
|
source "$stpRoot/lib/utils.sh"
|
|
source "$stpRoot/lib/yaml.sh"
|
|
|
|
readonly nombreConfig="$stpRoot/config/$ARGUMENTS.yaml"
|
|
|
|
# Funciones auxiliares (camelCase, una responsabilidad cada una)
|
|
helperEspecifico() { ... }
|
|
|
|
# Función principal
|
|
configurar$ARGUMENTS() {
|
|
log::info "Configurando $ARGUMENTS..."
|
|
helperEspecifico
|
|
log::ok "$ARGUMENTS configurado"
|
|
}
|
|
|
|
# Verificación inicial: salir si no hay configuración
|
|
if [[ ! -f "$nombreConfig" ]]; then
|
|
log::info "Sin configuración para $ARGUMENTS, salteando"
|
|
exit 0
|
|
fi
|
|
|
|
configurar$ARGUMENTS
|
|
```
|
|
|
|
2. Si el módulo necesita configuración propia, creá `config/$ARGUMENTS.yaml`.
|
|
|
|
3. Agregá `$ARGUMENTS` en `config/modules` en la posición lógica dentro del flujo:
|
|
`bootstrap → ssh → registry → <nombre>`
|
|
|
|
4. Dale permisos de ejecución: `chmod +x modules/$ARGUMENTS.sh`
|
|
|
|
Convenciones obligatorias (ver `.claude/style.md`):
|
|
- camelCase para todas las variables y funciones, sin guión bajo
|
|
- Nombres completos, sin abreviaciones (`packageName` no `pkg`)
|
|
- Funciones booleanas como preguntas (`configuraciónEsVálida()`)
|
|
- Verificar estado antes de actuar (idempotencia)
|
|
- Comandos directos — no usar `util::run`
|