import io, sys

p = "/homez.1005/fxdevsx/etic/.htaccess"
src = io.open(p, encoding="utf-8").read()

old = """  # Depot Git : le repo (racine = wp-content) vit DANS le docroot, donc
  # /wp-content/.git/config est un fichier EXISTANT -> Apache le sert tel quel,
  # le rewrite WordPress ne le capte pas (sa condition est !-f).
  # 404 et non 403 : ne pas confirmer l'existence du depot.
  # /!\\ CE BLOC RESTE a la mise en ligne, contrairement a FXC-AUTH / FXC-PREPROD
  # qui le masquaient jusqu'ici.
  # Regle GENERIQUE, alignee sur assets/htaccess.tpl du skill
  # wp-elementor-ovh-setup : une enumeration (.git|.svn|...) laisse passer ce
  # qu'on n'a pas prevu (.github/, .env). Ici et aujourd'hui : .git/ + .gitignore.
  # /!\\ L'exception .well-known est OBLIGATOIRE : sans elle, le renouvellement
  #     Let's Encrypt echoue EN SILENCE.
"""

new = """  # --- Dotfiles et dossiers caches (.git, .gitignore, .env, .github...) ---
  # Le depot vit DANS le docroot : racine du repo = wp-content, donc
  # /wp-content/.git/config est un fichier EXISTANT -> Apache le sert tel quel,
  # le rewrite WordPress ne le capte pas (sa condition est !-f).
  # Regle GENERIQUE et non une enumeration, alignee sur assets/htaccess.tpl du
  # skill wp-elementor-ovh-setup : une liste laisse passer ce qu'on n'a pas prevu.
  # /!\\ OVH bloque deja .git au niveau SERVEUR (403), mais PAS .gitignore ni les
  #     autres dotfiles -- et ce blocage serveur peut ne pas exister chez le client.
  # /!\\ L'exception .well-known est OBLIGATOIRE : sans elle, le renouvellement
  #     Let's Encrypt echoue EN SILENCE.
  # /!\\ CE BLOC RESTE a la mise en ligne, contrairement a FXC-AUTH / FXC-PREPROD
  #     qui le masquaient jusqu'ici.
"""

if old not in src:
    sys.exit("ANCRE INTROUVABLE - rien modifie")

io.open(p, "w", encoding="utf-8").write(src.replace(old, new, 1))
print("OK patch 3 applique")
