SPB Git forge
3commits 1branches 0releases
2.9 MBsize
maindefault branch
6 h agolast push
HTML 57.2% Shell 19.1% Python 11.2% CSS 7.4% JavaScript 5.1%
2.5 KB · 39 lines shellscript
Raw Blame History
1#!/bin/bash2# export-connaissances.sh — exporte la « connaissance » Claude Code + l'accès MacLustr de cet opérateur.3#   usage : export-connaissances.sh [--mcp] [--vers-cluster-skill] [chemin-archive.tar.gz]4#   --mcp                 inclut ~/.claude.json → mcpServers (JETONS !)5#   --vers-cluster-skill  copie aussi CLAUDE.md + mémoire + commandes dans <cluster-skill>/operateur/connaissances/ et pousse sur spbgit6set -euo pipefail7MCP=0; VERS=0; OUT=""8for a in "$@"; do case "$a" in --mcp) MCP=1;; --vers-cluster-skill) VERS=1;; *) OUT="$a";; esac; done9OUT=${OUT:-$HOME/Desktop/maclustr-operateur-$(date +%Y%m%d).tar.gz}10HERE="$(cd "$(dirname "$0")" && pwd)"11SLUG=$(echo "$HOME" | tr '/' '-')                     # ex. -Users-simon-pierreboucher12MEM="$HOME/.claude/projects/$SLUG/memory"13T=$(mktemp -d); mkdir -p "$T/claude/memory" "$T/ssh" "$T/operateur"14cp "$HOME/.claude/CLAUDE.md" "$T/claude/CLAUDE.md"15[ -d "$HOME/.claude/commands" ] && cp -R "$HOME/.claude/commands" "$T/claude/"16[ -f "$HOME/.claude/settings.json" ] && cp "$HOME/.claude/settings.json" "$T/claude/"17[ -d "$MEM" ] && cp -R "$MEM/." "$T/claude/memory/" || echo "avertissement : pas de mémoire dans $MEM"18cp "$HOME/.ssh/config" "$T/ssh/config"19[ -f "$HOME/.ssh/maclustr-egress.sh" ] && cp "$HOME/.ssh/maclustr-egress.sh" "$T/ssh/"20if [ $MCP = 1 ]; then21  python3 - "$T/claude/mcpServers.json" <<'PY'22import json, os, sys23d = json.load(open(os.path.expanduser("~/.claude.json")))24json.dump(d.get("mcpServers", {}), open(sys.argv[1], "w"), indent=1)25PY26fi27cp "$HERE"/*.sh "$T/operateur/"                        # les scripts voyagent avec l'archive28echo "$HOME" > "$T/SOURCE_HOME"; whoami > "$T/SOURCE_USER"; date "+%Y-%m-%d %H:%M" > "$T/EXPORTED_AT"29tar -czf "$OUT" -C "$T" . && chmod 600 "$OUT"30echo "export → $OUT ($(du -h "$OUT" | cut -f1)) ; mémoire : $(ls "$T/claude/memory" | wc -l | tr -d ' ') fichiers ; MCP : $([ $MCP = 1 ] && echo inclus || echo non)"31if [ $VERS = 1 ]; then32  CS="$(cd "$HERE/.." && pwd)"; K="$CS/operateur/connaissances"33  rm -rf "$K"; mkdir -p "$K"; cp -R "$T/claude/." "$K/"; rm -f "$K/mcpServers.json"   # jamais les jetons dans git34  cp "$T/ssh/config" "$K/ssh-config"; [ -f "$T/ssh/maclustr-egress.sh" ] && cp "$T/ssh/maclustr-egress.sh" "$K/"35  cp "$T/SOURCE_HOME" "$T/EXPORTED_AT" "$K/"36  git -C "$CS" add operateur/connaissances && git -C "$CS" commit -q -m "connaissances Claude Code exportées depuis $(hostname -s) ($(date +%Y-%m-%d))" && git -C "$CS" push -q origin main && echo "poussé dans cluster-skill/operateur/connaissances/"37fi38rm -rf "$T"39