diff --git a/cadetrdm/cli_integration.py b/cadetrdm/cli_integration.py index 32815ac4ac1f2235764228d7aee5fb7cbe012adb..0a7299318079b2d7d7d7b301a0b0d50875d28256 100644 --- a/cadetrdm/cli_integration.py +++ b/cadetrdm/cli_integration.py @@ -1,3 +1,6 @@ +import shlex +import subprocess + import click from .repositories import ProjectRepo @@ -47,6 +50,26 @@ def fill_data_from_cadet_rdm_json(re_load=False): repo.fill_data_from_cadet_rdm_json(re_load=re_load) +@cli.command() +@click.argument('file_name') +@click.argument('results_commit_message') +def run_python_file(file_name, results_commit_message): + repo = ProjectRepo(".") + repo.enter_context() + subprocess.run(["python", file_name]) + repo.exit_context(results_commit_message) + + +@cli.command() +@click.argument('command') +@click.argument('results_commit_message') +def run_command(command, results_commit_message): + repo = ProjectRepo(".") + repo.enter_context() + subprocess.run(shlex.split(command)) + repo.exit_context(results_commit_message) + + @cli.command() @click.option('--output_repo_name', default="output", help='Name of the folder where the tracked output should be stored. Optional. Default: "output".')