# script para refrescar cambios de xml del modulo de tryton import sys import os import logging import time import inotify.adapters logging.basicConfig(level=logging.INFO, stream=sys.stderr) SRC = os.environ['SRC'] MODULE_NAME = os.environ['MODULE_NAME'] DB_NAME = os.environ['DB_NAME'] def _main(): i = inotify.adapters.Inotify() i.add_watch(SRC) logging.info("MONITOREANDO ARCHIVOS EN %s", SRC) for event in i.event_gen(yield_nones=False): (_, type_names, path, filename) = event (_, ext) = os.path.splitext(filename) if 'IN_CLOSE_WRITE' not in type_names: continue if ext in ['.py', '.xml', '.cfg']: for _ in range(0, 10): if os.system("trytond-admin -d {} -u {}".format(DB_NAME, MODULE_NAME)) != 0: time.sleep(2) logging.error("fallo trytond-admin") else: logging.info("ACTUALIZADO TRYTOND POR CAMBIO DE ARCHIVO %s", filename) break if __name__ == '__main__': _main()