Files
codexpi/scripts/export-public-source.sh
CodexPi 995b17a6e2
Some checks are pending
Qualité / tests (push) Waiting to run
feat: publish CodexPi contest snapshot
2026-11-14 20:23:59 +01:00

47 lines
1.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
set -euo pipefail
BASE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
target_input="${1:-}"
if [[ -z "$target_input" ]]; then
echo "Usage: $0 /chemin/vers/CodexPi-public" >&2
exit 2
fi
TARGET="$(realpath -m -- "$target_input")"
case "$TARGET" in
"$BASE"|"$BASE"/*)
echo "Le dossier public doit être créé en dehors du dépôt privé." >&2
exit 2
;;
esac
if [[ -e "$TARGET" ]]; then
echo "Refus d’écraser un chemin existant : $TARGET" >&2
exit 2
fi
cd "$BASE"
"$BASE/scripts/check-secrets.sh" --worktree
mkdir -p -- "$TARGET"
cleanup() {
if [[ "${completed:-0}" != 1 && -d "$TARGET" ]]; then
find "$TARGET" -mindepth 1 -delete
rmdir "$TARGET" 2>/dev/null || true
fi
}
trap cleanup EXIT
git ls-files --cached --others --exclude-standard -z |
while IFS= read -r -d '' path; do
[[ -e "$path" || -L "$path" ]] && printf '%s\0' "$path"
done |
tar --null --files-from=- --create --file=- |
tar --extract --file=- --directory="$TARGET"
git -C "$TARGET" init -b main >/dev/null
git -C "$TARGET" config core.hooksPath .githooks
"$TARGET/scripts/check-secrets.sh" --worktree
completed=1
echo "Copie publique prête : $TARGET"
echo "Elle possède un nouvel historique Git vide et ne contient ni .env, ni data, ni ancien commit."