From 56ed60f1cd9c82e3029b2e8857339229fe2ffb32 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Sun, 17 Jun 2018 07:54:44 +0300 Subject: [PATCH] dvc: add -d|--default option for `dvc remote add` Fixes #783 Signed-off-by: Ruslan Kuprieiev --- dvc/cli.py | 5 +++++ dvc/command/remote.py | 9 ++++++++- tests/test_remote.py | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/dvc/cli.py b/dvc/cli.py index 7d6f553b9..d7696ab76 100644 --- a/dvc/cli.py +++ b/dvc/cli.py @@ -332,6 +332,11 @@ def parse_args(argv=None): action='store_true', default=False, help='Use local config') + remote_add_parser.add_argument('-d', + '--default', + action='store_true', + default=False, + help='Set as default remote') remote_add_parser.set_defaults(func=CmdRemoteAdd) diff --git a/dvc/command/remote.py b/dvc/command/remote.py index d0335d830..cca6ddb90 100644 --- a/dvc/command/remote.py +++ b/dvc/command/remote.py @@ -8,8 +8,15 @@ from dvc.logger import Logger class CmdRemoteAdd(CmdConfig): def run(self): section = Config.SECTION_REMOTE_FMT.format(self.args.name) - return self.set(section, Config.SECTION_REMOTE_URL, self.args.url) + ret = self.set(section, Config.SECTION_REMOTE_URL, self.args.url) + if ret != 0: + return ret + if self.args.default: + Logger.info('Setting \'{}\' as a default remote.'.format(self.args.name)) + ret = self.set(Config.SECTION_CORE, Config.SECTION_CORE_REMOTE, self.args.name) + + return ret class CmdRemoteRemove(CmdConfig): def run(self): diff --git a/tests/test_remote.py b/tests/test_remote.py index 8ad6b35b6..cdc74e5c7 100644 --- a/tests/test_remote.py +++ b/tests/test_remote.py @@ -11,7 +11,7 @@ class TestRemote(TestDvc): self.assertNotEqual(main(['remote', 'remove', remotes[0]]), 0) for r in remotes: - self.assertEqual(main(['remote', 'add', r, 's3://bucket/name']), 0) + self.assertEqual(main(['remote', 'add', '--default', r, 's3://bucket/name']), 0) self.assertEqual(main(['remote', 'list']), 0)