updated function to run directly via os.system and not in subprocess
This commit is contained in:
+35
-4
@@ -31,9 +31,40 @@ def clone_repository(
|
||||
return dst_dir
|
||||
|
||||
|
||||
def execute_runner_script(path: Path) -> None:
|
||||
rs = RunnerScript.from_file(path)
|
||||
def execute_script(
|
||||
local_repo_dir: Path
|
||||
) -> None:
|
||||
# locate the script
|
||||
script_path = (
|
||||
local_repo_dir /
|
||||
'.gitea' /
|
||||
'gpu_runner' /
|
||||
'script.yml'
|
||||
)
|
||||
# determine original working dir
|
||||
org_dir = os.getcwd()
|
||||
# initialise command list
|
||||
cmd_list = [
|
||||
f'cd {local_repo_dir.resolve()}',
|
||||
f'virtualenv -p python3.10 venv',
|
||||
f'source venv/bin/activate',
|
||||
]
|
||||
# add in runner script
|
||||
rs = RunnerScript.from_file(path=script_path)
|
||||
for cmd in rs.script:
|
||||
print(f'> {cmd}')
|
||||
os.system(cmd)
|
||||
cmd_list.append(cmd)
|
||||
# append cleanup commands
|
||||
cmd_list.append('deactivate')
|
||||
cmd_list.append(f'cd {org_dir}')
|
||||
cmd_list.append(f'rm -rf {local_repo_dir.resolve()}')
|
||||
# build command string
|
||||
cmd_str = ' && '.join(cmd_list)
|
||||
os.system(cmd_str)
|
||||
logging.debug('finished')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
local_repo_dir = Path(__file__).parent.parent / 'repo' / 'gpu_runner'
|
||||
execute_script(
|
||||
local_repo_dir=local_repo_dir
|
||||
)
|
||||
Reference in New Issue
Block a user