From 2ded6bf4090879e80c6c9b2f601051266436ef7f Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Sun, 10 Dec 2017 06:06:29 +0200 Subject: [PATCH] run: add -c|--cwd option Fixes #343 Signed-off-by: Ruslan Kuprieiev --- dvc/cli.py | 4 ++++ dvc/command/run.py | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/dvc/cli.py b/dvc/cli.py index 81d3de2a1..2c992713e 100644 --- a/dvc/cli.py +++ b/dvc/cli.py @@ -118,6 +118,10 @@ def parse_args(argv=None): '--file', default=StateFile.DVCFILE_NAME, help='Specify name of the state file') + run_parser.add_argument('-c', + '--cwd', + default=os.path.curdir, + help='Directory to run your command and place state file in') run_parser.add_argument( 'command', nargs=argparse.REMAINDER, diff --git a/dvc/command/run.py b/dvc/command/run.py index a9d4b9bed..51a2aa275 100644 --- a/dvc/command/run.py +++ b/dvc/command/run.py @@ -24,7 +24,7 @@ class CmdRun(CmdBase): Logger.error("Stage file {} already exists".format(self.parsed_args.file)) return 1 - state = StateFile(fname=self.parsed_args.file, + state = StateFile(fname=os.path.join(self.parsed_args.cwd, self.parsed_args.file), cmd=cmd, out=self.parsed_args.out, out_git=self.parsed_args.out_git, @@ -44,9 +44,9 @@ class CmdRun(CmdBase): @staticmethod def update_state_file(settings, state): Logger.debug('Update state file "{}"'.format(state.path)) - state.out = StateFile.parse_deps_state(settings, state.out) - state.out_git = StateFile.parse_deps_state(settings, state.out_git) - state.deps = StateFile.parse_deps_state(settings, state.deps) + state.out = StateFile.parse_deps_state(settings, state.out, currdir=state.cwd) + state.out_git = StateFile.parse_deps_state(settings, state.out_git, currdir=state.cwd) + state.deps = StateFile.parse_deps_state(settings, state.deps, currdir=state.cwd) state.save() @staticmethod