Scripts

Instalación

./bin/inject            # generar ~/.scripts.sh y source a todos los rc
./bin/inject --show     # previsualizar el contenido a escribir
./bin/inject --uninstall  # desinstalar

inject es idempotente : reejecutar no añadirá duplicados. Después de reiniciar el shell o source ~/.zshrc, puede llamar directamente desde cualquier directorio.

Tabla de funcionalidades

ScriptFunciónEjemplo
checkworkVerificación automatizada de compilación + notificaciones de vozcheckwork
cpdCopia profunda (por defecto solo añadir/actualizar ; -f elimina excesivos)cpd src/* dest/
kkTerminar procesos por nombrekk nginx
kkpTerminar procesos por puertokkp 8080
nDifusión de voz macOS (say)n "construcción terminada"
loopEjecutar comandos en bucle, seguir éxito/fracasoloop 10 curl url
merge_canaryFusionar rama actual → canary, quedarse en canarymerge_canary [--dry-run]
merge_developFusionar rama actual → develop, quedarse en developmerge_develop
merge_autoFusionar rama actual → rama por defecto remota, quedarse en objetivomerge_auto
merge_testFusionar rama actual → test, quedarse en testmerge_test
push_canaryFusionar rama actual → canary, empujar luego volver a rama originalpush_canary [--stay]
push_develop / push_auto / push_testÍdem, objetivos develop / remoto por defecto / test respectivamente
push_* (lotes)Al ejecutar push_* en directorio no-git, automáticamente por lotes : escanear repositorios Git en subdirectorios y empujar uno por unopush_canary [--dry-run]
switch_branchCambiar ramas por lotes (crea desde origin/master si inexistente)switch_branch <branch>
sync_masterSincronizar master por lotessync_master
sync_branchSincronizar por lotes rama actual (o dada) a origin/sync_branch [branch] [--force]
delete_branchEliminar rama local (único/lote)delete_branch <name> [--force] [-y]
delete_branch_remoteEliminar rama remota (único/lote)delete_branch_remote <name> [--remote <r>] [-y]
fetch_allRecuperar por lotes todos los repositorios Gitfetch_all
unsleepEvitar suspensión macOS caffeinateunsleep -t 3600
reindexReindexar proyecto (local-only, .gitignore)reindex
injectInyectar bin/ en PATH shellinject

Notas de migración (nombres antiguos eliminados)

  • mergec / mergedev / mergem / mergetmerge_canary / merge_develop / merge_auto / merge_test
  • pushc / pushdev / pushm / pushtpush_canary / push_develop / push_auto / push_test
  • pushc_all se fusionó en push_* : ejecutar en directorio no-git activa automáticamente modo por lotes, ejecución automática sin confirmación, --dry-run para previsualizar.

Variables de entorno

  • BATCH_CONCURRENCY : límite superior de paralelismo para operaciones por lotes (push_* / switch_branch / sync_branch / sync_master), por defecto 4. Ejemplo : BATCH_CONCURRENCY=8 push_canary.

Dependencias de entorno

  • Python 3.10+ (entrada ligera y lógica principal)
  • Git (merge_* / push_* / switch_branch / sync_master / fetch_all / delete_branch)
  • macOS (n usa say, unsleep usa caffeinate)
  • rich (embellecimiento de salida, pip install rich)
  • pgrep / ps / lsof / kill (kk / kkp)