Files
gpu_runner/code/utils.py
T
2023-07-13 12:46:24 +02:00

40 lines
968 B
Python

from pydantic import AnyHttpUrl
from pathlib import Path
from git import Repo
import logging
import shutil
import os
from configparser import ConfigParser
from runner_script import RunnerScript
# load default values
config = ConfigParser()
config.read(Path(__file__).parent / 'defaults.ini')
REPO_DIR = config.get('main', 'repo_dir')
def clone_repository(
repo_url: AnyHttpUrl,
repo_dir: str = REPO_DIR
) -> Path:
# extract repo name
repo_name = repo_url.split('/')[-1].replace('.git', '')
dst_dir = Path(repo_dir) / repo_name
# prepare repo download dir
if dst_dir.exists():
shutil.rmtree(dst_dir)
dst_dir.mkdir()
# git clone repo
Repo.clone_from(url=repo_url, to_path=dst_dir)
logging.debug('finished')
return dst_dir
def execute_runner_script(path: Path) -> None:
rs = RunnerScript.from_file(path)
for cmd in rs['script']:
print(cmd)
os.system(cmd)
logging.debug('finished')