#!/usr/bin/env python3 # © 2021-2026 TechnoLibre (http://www.technolibre.ca) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) """Les outils de migration parlaient anglais sur un système en français. Ils tournent en sous-processus depuis le pilote, et n'avaient aucun i18n : la migration alternait donc les deux langues d'une ligne à l'autre. Deux choses à tenir, et la seconde est un piège : le pilote CHERCHAIT des phrases anglaises dans leur sortie pour décider s'il devait poser une question (« will break when moving to », « No website COW view to neutralize »). Traduire ces phrases l'aurait rendu muet — sans erreur, sans trace. Le lien passe désormais par le code de sortie, que la langue ne touche pas. """ import ast import os import subprocess import sys import unittest REPO = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Les outils COW, ceux que la migration lance et dont la sortie est lue par un # humain au milieu d'une migration de plusieurs heures. TOOLS = ( "check_cow_views.py", "cow_drift.py", "neutralize_cow_views.py", "reset_stale_cow_views.py", "snapshot_cow_views.py", ) # Ce qui n'est pas de la prose : du SQL, des chemins, des drapeaux. NOT_PROSE = ("SELECT ", "UPDATE ", "./script/", "--", "id=", "