L'astuce consiste à vérifier le contenu du dossier à certains intervalles, et à comparer la liste des fichiers avec la dernière vérification. Comme seuls les nouveaux fichiers doivent être convertis, les fichiers qui figuraient déjà dans la liste la dernière fois peuvent être ignorés.
C'est ce que fait le script ci-dessous. Il est en Python, mais le principe est le même dans n'importe quel langage.
Ce qu'il fait :
Quand le script s'initie, il fait une liste des fichiers dans le répertoire.
Puis, en boucle, toutes les 5 secondes :
- il vérifie la présence de fichiers supplémentaires
- si des fichiers supplémentaires ont été trouvés, ils seront convertis, les fichiers qui étaient déjà là sont ignorés.
-
il définit la dernière liste de fichiers vérifiée comme étant la "nouvelle" liste de fichiers initiale.
!/usr/bin/env python3
import subprocess
import time
directory = "/path/to/your/files"
def current_files():
read = subprocess.check_output(["ls", directory]).decode("utf-8").strip()
return [item for item in read.split("\n")]
initial_files = current_files()
while True:
update = current_files()
for item in update:
if (item in initial_files, item.startswith("frm")) == (False, True):
subprocess.call(["/bin/bash", "-c", "dos2unix", directory+"/"+item])
initial_files = update
time.sleep(5)
Copiez le script dans un fichier vide, mettez le chemin d'accès à votre dossier, sauvegardez-le en tant que convert.py
et exécuter le script en arrière-plan par la commande :
python3 /path/to/convert.py