34 lines
915 B
Bash
34 lines
915 B
Bash
#!/bin/bash
|
|
# SessionStart: Hook-Scripts automatisch vom Hub aktualisieren (max 1x/Stunde)
|
|
LOCK="/tmp/claude-hooks-update.lock"
|
|
LOCAL_REPO="$HOME/git/claude-hooks"
|
|
HOOKS_DIR="$HOME/.claude/hooks-v2"
|
|
LAST_UPDATE="$HOME/.claude/hooks-v2/.last-update"
|
|
|
|
# Max 1x pro Stunde updaten
|
|
if [ -f "$LAST_UPDATE" ]; then
|
|
LAST=$(cat "$LAST_UPDATE" 2>/dev/null || echo 0)
|
|
NOW=$(date +%s)
|
|
DIFF=$((NOW - LAST))
|
|
[ $DIFF -lt 3600 ] && exit 0
|
|
fi
|
|
|
|
# Nicht parallel laufen
|
|
[ -f "$LOCK" ] && exit 0
|
|
touch "$LOCK"
|
|
trap "rm -f $LOCK" EXIT
|
|
|
|
if [ -d "$LOCAL_REPO/.git" ]; then
|
|
cd "$LOCAL_REPO"
|
|
BEFORE=$(git rev-parse HEAD 2>/dev/null)
|
|
git pull origin main -q 2>/dev/null
|
|
AFTER=$(git rev-parse HEAD 2>/dev/null)
|
|
if [ "$BEFORE" != "$AFTER" ]; then
|
|
cp "$LOCAL_REPO/hooks-v2/"*.sh "$HOOKS_DIR/" 2>/dev/null
|
|
chmod +x "$HOOKS_DIR/"*.sh
|
|
echo "🔄 Claude Hooks aktualisiert von Hub"
|
|
fi
|
|
fi
|
|
|
|
date +%s > "$LAST_UPDATE"
|