53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| # 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'] + '/modules/'
 | |
| MODULES = os.environ['MODULES'].split(':')
 | |
| DB_NAME = os.environ['DB_NAME']
 | |
| 
 | |
| 
 | |
| def _main():
 | |
|     i = inotify.adapters.Inotify()
 | |
|     logging.info("MONITOREANDO ARCHIVOS EN %s", SRC)
 | |
| 
 | |
|     for module in MODULES:
 | |
|         logging.info('NOMBRE DEL MODULO A MONITOREAR%s', module)
 | |
|         i.add_watch(
 | |
|             SRC + module)
 | |
| 
 | |
|     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
 | |
| 
 | |
|         module_name = path.split('/')[-1]
 | |
|         logging.info('NOMBRE DEL MODULO %s', module_name)
 | |
| 
 | |
|         if ext in ['.py', '.xml', '.cfg']:
 | |
|             for _ in range(0, 10):
 | |
|                 command = "trytond-admin -d {} -u {} --act -vv".format(
 | |
|                     DB_NAME, module_name)
 | |
|                 logging.debug("Ejecutando comando: %s", command)
 | |
|                 update_module = os.system(command)
 | |
|                 if update_module != 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()
 |