1#!/usr/bin/env python3 2__package__ = 'configurator.pyodide' 3 4import os 5from tempfile import TemporaryDirectory 6from pathlib import Path 7 8from launch_config.launch_cfg_gen import main as launch_cfg_gen_main 9 10from .pyodide import convert_result, nuc11_board, nuc11_scenario, write_temp_file 11 12 13def generate_launch_script(board, scenario, user_vm_id=0): 14 """ 15 16 :param board: board xml text 17 :param scenario: scenario xml text 18 :param user_vm_id: the vm which you want to generate launch script, will generate all launch script if it set to zero 19 """ 20 launch_scripts = {} 21 with TemporaryDirectory() as tmpdir: 22 # Write file to dir 23 write_temp_file(tmpdir, { 24 'board.xml': board, 25 'scenario.xml': scenario 26 }) 27 28 # define path 29 board_file_path = Path(tmpdir) / 'board.xml' 30 scenario_file_path = Path(tmpdir) / 'scenario.xml' 31 launch_script_output_dir = Path(tmpdir) / 'output' 32 33 # generate launch script 34 launch_cfg_gen_main(board_file_path, scenario_file_path, user_vm_id, launch_script_output_dir) 35 36 # get output and convert it to {filename: content} 37 for filename in os.listdir(launch_script_output_dir): 38 abs_name = launch_script_output_dir / str(filename) 39 launch_scripts[filename] = open(abs_name, encoding='utf-8').read() 40 return convert_result(launch_scripts) 41 42 43main = generate_launch_script 44 45 46def test(): 47 main(nuc11_board, nuc11_scenario) 48 49 50if __name__ == '__main__': 51 test() 52