Files
_Assistant_Lead_Tech/sync-ai-instructions.sh
2026-03-08 11:21:11 +01:00

76 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# sync-ai-instructions.sh
# Génère CLAUDE.md et AGENTS.md depuis _AI_INSTRUCTIONS.md + _projects.conf
# selon la machine courante (Darwin = Mac, Linux = NUC)
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCE="$SCRIPT_DIR/_AI_INSTRUCTIONS.md"
PROJECTS_CONF="$SCRIPT_DIR/_projects.conf"
# --- Détection machine ---
OS="$(uname -s)"
# --- Construire la table markdown des projets ---
build_projects_table() {
local os="$1"
echo "| Projet | Stack | Localisation | État |"
echo "|---|---|---|---|"
while IFS='|' read -r nom stack path_nuc path_mac etat; do
# Ignorer lignes vides et commentaires
[[ -z "$nom" || "$nom" == \#* ]] && continue
if [ "$os" = "Darwin" ]; then
path="$path_mac"
else
path="$path_nuc"
fi
if [ -z "$path" ]; then
echo "| $nom | $stack | *non disponible sur cette machine* | $etat |"
else
echo "| $nom | $stack | \`$path\` | $etat |"
fi
done < "$PROJECTS_CONF"
}
# --- Fonction de génération ---
generate() {
local header="$1"
local dest="$2"
local projects_table
projects_table="$(build_projects_table "$OS")"
{
echo "$header"
echo ""
# Remplacer {{PROJECTS_TABLE}} par la table générée
while IFS= read -r line; do
if [ "$line" = "{{PROJECTS_TABLE}}" ]; then
echo "$projects_table"
else
echo "$line"
fi
done < "$SOURCE"
} > "$dest"
echo " -> $dest"
}
echo "Sync AI instructions (OS: $OS)"
CLAUDE_HEADER="# Instructions globales — Lead Tech Copilote
Ce fichier est chargé automatiquement par Claude Code à chaque session.
Il pointe vers la base de connaissance commune à tous les projets."
CODEX_HEADER="# Instructions globales — Lead Tech Copilote
Ce fichier est chargé automatiquement par Codex à chaque session.
Il pointe vers la base de connaissance commune à tous les projets."
generate "$CLAUDE_HEADER" "$HOME/.claude/CLAUDE.md"
generate "$CLAUDE_HEADER" "$SCRIPT_DIR/CLAUDE.md"
generate "$CODEX_HEADER" "$HOME/.codex/AGENTS.md"
generate "$CODEX_HEADER" "$SCRIPT_DIR/AGENTS.md"
echo "Sync terminé."