spb/maclustr-dispatch
Public
Python 95.8%
Shell 4.2%
1#!/bin/zsh2# ============================================3# KA pousseur — pousse vers spbgit les commits en attente des repos Ka du nœud.4# Chaîne 100 % binaires Apple (launchd → zsh → /usr/bin/git → /usr/bin/ssh) :5# contourne macOS 26 Local Network Privacy, qui bloque les `git push` lancés6# par les missions Claude (descendants du runner python homebrew).7# Repos surveillés : un chemin par ligne dans ~/.ka-pousseur-repos.8# Push SIMPLE uniquement (jamais de force) : un non-fast-forward est loggé,9# jamais résolu d'autorité.10# ============================================11export PATH=/usr/bin:/bin:/usr/sbin:/sbin12SPOOL=~/ka-guardian-spool13LOG=$SPOOL/pousseur.log14REPOS_FILE=~/.ka-pousseur-repos15mkdir -p $SPOOL1617while true; do18 if [[ -f $REPOS_FILE ]]; then19 while IFS= read -r dir; do20 [[ -z $dir || $dir == \#* ]] && continue21 d=${dir/#\~/$HOME}22 [[ -d $d/.git ]] || continue23 ahead=$(/usr/bin/git -C "$d" rev-list --count origin/main..main 2>/dev/null)24 if [[ -n $ahead && $ahead -gt 0 ]]; then25 if /usr/bin/git -C "$d" push origin main >>$LOG 2>&1; then26 echo "$(date '+%F %T') poussé $ahead commit(s): $d" >>$LOG27 else28 echo "$(date '+%F %T') ÉCHEC push ($ahead en attente): $d" >>$LOG29 fi30 fi31 done <$REPOS_FILE32 fi33 sleep 30034done35