Remove uncessary file
This commit is contained in:
@ -1,83 +0,0 @@
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
|
||||
def clean_comments_in_file(filepath):
|
||||
"""
|
||||
Supprime le reste de la ligne à partir de '//' dans un fichier donné,
|
||||
en essayant d'éviter les URL. Gère aussi les commentaires /* ... */.
|
||||
"""
|
||||
try:
|
||||
with open(filepath, 'r', encoding='utf-8') as f_read:
|
||||
content = f_read.read()
|
||||
|
||||
# Première passe : supprimer les commentaires /* ... */
|
||||
# Utilise re.DOTALL pour que . corresponde aussi aux retours à la ligne
|
||||
# et non-greedy quantifier *?
|
||||
content = re.sub(r'/\*.*?\*/', '', content, flags=re.DOTALL)
|
||||
|
||||
cleaned_lines = []
|
||||
for line in content.splitlines():
|
||||
# Vérifie si la ligne contient une URL avant de chercher un commentaire
|
||||
if re.search(r'https?://', line):
|
||||
# Si une URL est trouvée, nous sommes très prudents.
|
||||
# Nous ne supprimons les commentaires que s'ils sont CLAIREMENT après une URL et non mélangés
|
||||
# Cela reste une heuristique et n'est pas parfait.
|
||||
comment_index = line.find('//')
|
||||
if comment_index != -1 and not re.search(r'["\']https?://.*?//', line): # Évite les // dans les URLs entre guillemets
|
||||
# On tente de voir si le commentaire est vraiment à la fin de la ligne,
|
||||
# après d'éventuelles guillemets.
|
||||
# Ceci est une simplification et peut encore échouer.
|
||||
if comment_index > line.rfind('"') and comment_index > line.rfind("'"):
|
||||
cleaned_lines.append(line[:comment_index].rstrip())
|
||||
else:
|
||||
cleaned_lines.append(line) # Conserve la ligne si le // est potentiellement dans une chaîne/URL
|
||||
else:
|
||||
cleaned_lines.append(line)
|
||||
else:
|
||||
# Si pas d'URL, on peut être plus agressif avec les //
|
||||
if '//' in line:
|
||||
index = line.find('//')
|
||||
cleaned_lines.append(line[:index].rstrip())
|
||||
else:
|
||||
cleaned_lines.append(line)
|
||||
|
||||
# Rejoindre les lignes avec des retours à la ligne.
|
||||
# Ajoute un retour à la ligne final si le fichier en avait un.
|
||||
final_content = '\n'.join(cleaned_lines)
|
||||
if content.endswith('\n') and not final_content.endswith('\n'):
|
||||
final_content += '\n'
|
||||
|
||||
with open(filepath, 'w', encoding='utf-8') as f_write:
|
||||
f_write.write(final_content)
|
||||
print(f"Commentaires nettoyés dans : {filepath}")
|
||||
except Exception as e:
|
||||
print(f"Erreur lors du traitement de {filepath} : {e}")
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: python clean_comments.py <path_to_directory>")
|
||||
print("Exemple: python clean_comments.py ./mon_projet_flutter")
|
||||
sys.exit(1)
|
||||
|
||||
target_directory = sys.argv[1]
|
||||
|
||||
if not os.path.isdir(target_directory):
|
||||
print(f"Erreur : Le chemin '{target_directory}' n'est pas un répertoire valide.")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"Nettoyage des commentaires '//' et '/* ... */' dans le répertoire : {target_directory}")
|
||||
print("-" * 70)
|
||||
|
||||
for root, _, files in os.walk(target_directory):
|
||||
for file in files:
|
||||
filepath = os.path.join(root, file)
|
||||
# Filtrez les types de fichiers que vous souhaitez traiter
|
||||
if filepath.endswith(('.dart', '.js', '.ts', '.java', '.cpp', '.c', '.h', '.py')):
|
||||
clean_comments_in_file(filepath)
|
||||
|
||||
print("-" * 70)
|
||||
print("Nettoyage terminé.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user