feat: publish CodexPi contest snapshot
Some checks are pending
Qualité / tests (push) Waiting to run
Some checks are pending
Qualité / tests (push) Waiting to run
This commit is contained in:
79
repair-rpi-with-codex.sh
Normal file
79
repair-rpi-with-codex.sh
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Some terminals encourage invoking scripts with `sh script.sh`, which makes
|
||||
# POSIX sh ignore the Bash shebang. Re-enter Bash before any Bash-only syntax
|
||||
# is parsed so that invocation remains safe and predictable.
|
||||
if [ -z "${BASH_VERSION:-}" ]; then
|
||||
exec bash "$0" "$@"
|
||||
fi
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
BASE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage: ./repair-rpi-with-codex.sh
|
||||
|
||||
Lance une session Codex interactive et isolée pour diagnostiquer le Raspberry
|
||||
Pi et préparer une correction. Les modifications de code sont réalisées dans
|
||||
un worktree Git dédié. Toute action sur le système, Docker, les montages, le
|
||||
réseau ou les services doit rester soumise à une approbation humaine.
|
||||
EOF
|
||||
}
|
||||
|
||||
case "${1:-}" in
|
||||
"") ;;
|
||||
-h|--help) usage; exit 0 ;;
|
||||
*) usage >&2; exit 2 ;;
|
||||
esac
|
||||
|
||||
if [[ "${EUID:-$(id -u)}" -eq 0 ]]; then
|
||||
echo "Ne lancez pas ce script avec sudo." >&2
|
||||
exit 2
|
||||
fi
|
||||
command -v codex >/dev/null 2>&1 || {
|
||||
echo "Codex CLI est introuvable dans PATH." >&2
|
||||
exit 127
|
||||
}
|
||||
command -v git >/dev/null 2>&1 || {
|
||||
echo "Git est requis pour créer le worktree isolé." >&2
|
||||
exit 127
|
||||
}
|
||||
git -C "$BASE" rev-parse --is-inside-work-tree >/dev/null 2>&1 || {
|
||||
echo "Le dossier CodexPi n’est pas un dépôt Git." >&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
read -r -d '' PROMPT <<'EOF' || true
|
||||
Tu es l’agent Pi Doctor chargé de diagnostiquer un Raspberry Pi 5 sous DietPi.
|
||||
|
||||
Commence uniquement par des contrôles en lecture seule : état systemd, erreurs
|
||||
récentes du journal, mémoire, disque, température, montages CIFS, réseau et
|
||||
conteneurs Docker. Utilise aussi ./scripts/repair.sh --check pour CodexPi quand
|
||||
il est pertinent. Ne copie jamais de cookie, jeton, clé, mot de passe, contenu
|
||||
de .env ou autre secret dans la conversation ou les journaux.
|
||||
|
||||
Tu travailles dans un worktree Git isolé. Tu peux corriger les fichiers de
|
||||
CodexPi dans ce worktree et exécuter leurs tests. Ne modifie pas la production,
|
||||
les données persistantes, NASFLIX, Jellyfin, le reverse proxy QNAP, SSH, le
|
||||
pare-feu, les montages ou les services sans présenter d’abord : le diagnostic,
|
||||
les preuves, le niveau de confiance, les commandes exactes, les risques, la
|
||||
sauvegarde et le retour arrière. Attends ensuite une approbation explicite dans
|
||||
la session avant chaque intervention système.
|
||||
|
||||
N’utilise jamais sudo automatiquement, ne redémarre pas la machine et ne lance
|
||||
aucune commande destructive. Si une intervention dépasse le sandbox, demande
|
||||
l’approbation au lieu de contourner la protection. Termine par un rapport qui
|
||||
distingue clairement diagnostic, corrections de code testées, actions système
|
||||
approuvées et problèmes encore bloqués.
|
||||
EOF
|
||||
|
||||
exec codex \
|
||||
-C "$BASE" \
|
||||
--enable worktrees \
|
||||
--worktree \
|
||||
--sandbox workspace-write \
|
||||
--ask-for-approval on-request \
|
||||
--no-alt-screen \
|
||||
"$PROMPT"
|
||||
Reference in New Issue
Block a user