diff --git a/update.sh b/update.sh index 56f7568..8ce42e2 100644 --- a/update.sh +++ b/update.sh @@ -1,4 +1,14 @@ #!/usr/bin/env bash + +# exiger bash, bloquer le "source" +[ -n "${BASH_VERSION:-}" ] || exec bash "$0" "$@" +(return 0 2>/dev/null) && { echo "❌ Ne source pas ce script, exécute-le: ./$0"; return 1; } + +# chemin canonique du script (robuste: ./script.sh, bash script.sh, via PATH, symlink…) +SCRIPT_SOURCE="${BASH_SOURCE[0]}" +SCRIPT_DIR="$(cd -- "$(dirname -- "$SCRIPT_SOURCE")" && pwd -P)" +SCRIPT_FILE="$SCRIPT_DIR/$(basename -- "$SCRIPT_SOURCE")" + set -Eeuo pipefail trap 'echo "❌ ERREUR ligne $LINENO: $BASH_COMMAND" >&2' ERR @@ -368,5 +378,11 @@ else ok "Configuration OK." fi -# (optionnel) auto-suppression -rm -- "$0" 2>/dev/null || true +# auto-suppression (désactivable via SKIP_SELF_DELETE=1) +if [ -z "${SKIP_SELF_DELETE:-}" ] && [ -f "$SCRIPT_FILE" ]; then + if rm -f -- "$SCRIPT_FILE"; then + ok "Script supprimé: $SCRIPT_FILE" + else + warn "Impossible de supprimer $SCRIPT_FILE (droits sur le dossier ?)" + fi +fi