import os import time import shutil import subprocess import sys def main(arg1, arg2, dest_file): start_time = time.time() # Cargar la configuración del motor desde el archivo engine.cfg og_engine_configurate = os.getenv('OGENGINECONFIGURATE') if not og_engine_configurate: with open('/opt/opengnsys/etc/engine.cfg') as f: exec(f.read()) # Limpiar los archivos temporales usados como log para httpdlog og_log_session = os.getenv('OGLOGSESSION') og_log_command = os.getenv('OGLOGCOMMAND') if og_log_session and og_log_command: with open(og_log_session, 'w') as f: f.write(" ") with open(og_log_command, 'w') as f: f.write(" ") with open(f"{og_log_command}.tmp", 'w') as f: f.write(" ") # Registrar el inicio de ejecución msg_interface_start = os.getenv('MSG_INTERFACE_START') if msg_interface_start: subprocess.run(['ogEcho', 'log', 'session', f"{msg_interface_start} {__file__} {arg1} {arg2}"]) # Ejecutar el script listSoftwareInfo y capturar el archivo de salida try: result = subprocess.run( ["python3", "/opt/opengnsys/scripts/listSoftwareInfo.py", arg1, arg2], capture_output=True, text=True, check=True ) file = result.stdout.strip() # Captura la salida del script except subprocess.CalledProcessError as e: print(f"Error al ejecutar listSoftwareInfo: {e.stderr}") sys.exit(e.returncode) # Copiar el archivo resultante a dest_file shutil.copy(file, dest_file) # Registrar el tiempo de ejecución elapsed_time = time.time() - start_time msg_scripts_time_partial = os.getenv('MSG_SCRIPTS_TIME_PARTIAL') if msg_scripts_time_partial: subprocess.run(['ogEcho', 'log', 'session', f" [ ] {msg_scripts_time_partial} : {int(elapsed_time // 60)}m {int(elapsed_time % 60)}s"]) if __name__ == "__main__": if len(sys.argv) != 4: print("Usage: python InventarioSoftware.py ") sys.exit(1) main(sys.argv[1], sys.argv[2], sys.argv[3])