Скрипты

Установка

./bin/inject            # сгенерировать ~/.scripts.sh и source во все rc
./bin/inject --show     # предпросмотр содержимого для записи
./bin/inject --uninstall  # удалить

inject идемпотентен : повторный запуск не добавит дубликаты. После перезапуска оболочки или source ~/.zshrc можно вызывать напрямую из любого каталога.

Таблица функциональности

СкриптФункцияПример
checkworkАвтоматизированная проверка компиляции + голосовые уведомленияcheckwork
cpdГлубокое копирование (по умолчанию только добавление/обновление ; -f удаляет лишнее)cpd src/* dest/
kkЗавершить процессы по имениkk nginx
kkpЗавершить процессы по портуkkp 8080
nГолосовая трансляция macOS (say)n "сборка завершена"
loopВыполнять команды в цикле, отслеживать успех/неудачуloop 10 curl url
merge_canaryСлить текущую ветку → canary, остаться в canarymerge_canary [--dry-run]
merge_developСлить текущую ветку → develop, остаться в developmerge_develop
merge_autoСлить текущую ветку → удалённая ветка по умолчанию, остаться в целиmerge_auto
merge_testСлить текущую ветку → test, остаться в testmerge_test
push_canaryСлить текущую ветку → canary, отправить затем вернуться в исходную веткуpush_canary [--stay]
push_develop / push_auto / push_testАналогично, цели develop / удалённая по умолчанию / test соответственно
push_* (пакеты)При выполнении push_* вне git каталога, автоматически пакетно : сканировать Git репозитории в подкаталогах и отправить по одномуpush_canary [--dry-run]
switch_branchПереключить ветки пакетно (создаёт из origin/master если отсутствует)switch_branch <branch>
sync_masterСинхронизировать master пакетноsync_master
sync_branchПакетно синхронизировать текущую (или заданную) ветку с origin/sync_branch [branch] [--force]
delete_branchУдалить локальную ветку (один/пакет)delete_branch <name> [--force] [-y]
delete_branch_remoteУдалить удалённую ветку (один/пакет)delete_branch_remote <name> [--remote <r>] [-y]
fetch_allПолучить пакетно все Git репозиторииfetch_all
unsleepИзбегать засыпания macOS caffeinateunsleep -t 3600
reindexПереиндексировать проект (local-only, .gitignore)reindex
injectВнедрить bin/ в PATH оболочкиinject

Заметки о миграции (старые имена удалены)

  • mergec / mergedev / mergem / mergetmerge_canary / merge_develop / merge_auto / merge_test
  • pushc / pushdev / pushm / pushtpush_canary / push_develop / push_auto / push_test
  • pushc_all включён в push_* : выполнение вне git каталога автоматически активирует пакетный режим, автоматическое выполнение без подтверждения, --dry-run для предпросмотра.

Переменные окружения

  • BATCH_CONCURRENCY : верхний предел параллелизма для пакетных операций (push_* / switch_branch / sync_branch / sync_master), по умолчанию 4. Пример : BATCH_CONCURRENCY=8 push_canary.

Зависимости окружения

  • Python 3.10+ (лёгкий вход и основная логика)
  • Git (merge_* / push_* / switch_branch / sync_master / fetch_all / delete_branch)
  • macOS (n использует say, unsleep использует caffeinate)
  • rich (украшение вывода, pip install rich)
  • pgrep / ps / lsof / kill (kk / kkp)