Files
msaldain bd78fd9fbe Configuracion inicial completa del entorno personal
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>
2026-06-20 18:16:40 -03:00

1.4 KiB

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:
#!/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
  1. Si el módulo necesita configuración propia, creá config/$ARGUMENTS.yaml.

  2. Agregá $ARGUMENTS en config/modules en la posición lógica dentro del flujo: bootstrap → ssh → registry → <nombre>

  3. 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