Scripts

Installation

./bin/inject            # générer ~/.scripts.sh et sourcer vers tous les rc
./bin/inject --show     # prévisualiser le contenu à écrire
./bin/inject --uninstall  # désinstaller

inject est idempotent : réexécuter n'ajoutera pas de doublons. Après redémarrage du shell ou source ~/.zshrc, vous pouvez appeler directement depuis n'importe quel répertoire.

Tableau des fonctionnalités

ScriptFonctionExemple
checkworkVérification automatisée de la compilation + notifications vocalescheckwork
cpdCopie profonde par défaut (ajout/mise à jour seulement ; -f supprime les excédents)cpd src/* dest/
kkTerminer les processus par nomkk nginx
kkpTerminer les processus par portkkp 8080
nDiffusion vocale macOS (say)n "construction terminée"
loopExécuter des commandes en boucle, suivre succès/échecloop 10 curl url
merge_canaryFusionner la branche actuelle → canary, rester sur canarymerge_canary [--dry-run]
merge_developFusionner la branche actuelle → develop, rester sur developmerge_develop
merge_autoFusionner la branche actuelle → branche par défaut distante, rester sur ciblemerge_auto
merge_testFusionner la branche actuelle → test, rester sur testmerge_test
push_canaryFusionner la branche actuelle → canary, pousser puis revenir à la branche d'originepush_canary [--stay]
push_develop / push_auto / push_testIdem, cibles develop / distant par défaut / test respectivement
push_* (batch)Lors de l'exécution de push_* dans un répertoire non-git, automatiquement par lots : scanner les dépôts Git des sous-répertoires et pousser un par unpush_canary [--dry-run]
switch_branchBasculer des branches par lots (crée depuis origin/master si inexistant)switch_branch <branch>
sync_masterSynchroniser master par lotssync_master
sync_branchSynchroniser par lots branche courante (ou donnée) vers origin/sync_branch [branch] [--force]
delete_branchSupprimer branche locale (unique/lot)delete_branch <name> [--force] [-y]
delete_branch_remoteSupprimer branche distante (unique/lot)delete_branch_remote <name> [--remote <r>] [-y]
fetch_allRécupérer par lots tous les dépôts Gitfetch_all
unsleepEmpêcher la mise en veille macOS caffeinateunsleep -t 3600
reindexRéindexer le projet (local-only, .gitignore)reindex
injectInjecter bin/ dans le PATH shellinject

Notes de migration (anciens noms supprimés)

  • mergec / mergedev / mergem / mergetmerge_canary / merge_develop / merge_auto / merge_test
  • pushc / pushdev / pushm / pushtpush_canary / push_develop / push_auto / push_test
  • pushc_all a été fusionné dans push_* : exécuter dans un répertoire non-git déclenche automatiquement le mode par lots, exécution automatique sans confirmation, --dry-run pour prévisualiser.

Variables d'environnement

  • BATCH_CONCURRENCY : limite supérieure de parallélisme pour les opérations par lots (push_* / switch_branch / sync_branch / sync_master), par défaut 4. Exemple : BATCH_CONCURRENCY=8 push_canary.

Dépendances d'environnement

  • Python 3.10+ (entrée légère et logique principale)
  • Git (merge_* / push_* / switch_branch / sync_master / fetch_all / delete_branch)
  • macOS (n utilise say, unsleep utilise caffeinate)
  • rich (embellissement de sortie, pip install rich)
  • pgrep / ps / lsof / kill (kk / kkp)