mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
cli: add dvc remote default command
Fixes #1357 Signed-off-by: Ruslan Kuprieiev <[email protected]>
This commit is contained in:
+35
-1
@@ -19,7 +19,7 @@ from dvc.command.imp import CmdImport
|
||||
from dvc.command.config import CmdConfig
|
||||
from dvc.command.checkout import CmdCheckout
|
||||
from dvc.command.remote import CmdRemoteAdd, CmdRemoteRemove
|
||||
from dvc.command.remote import CmdRemoteModify, CmdRemoteList
|
||||
from dvc.command.remote import CmdRemoteModify, CmdRemoteList, CmdRemoteDefault
|
||||
from dvc.command.metrics import CmdMetricsShow, CmdMetricsAdd
|
||||
from dvc.command.metrics import CmdMetricsRemove, CmdMetricsModify
|
||||
from dvc.command.install import CmdInstall
|
||||
@@ -733,6 +733,40 @@ def parse_args(argv=None):
|
||||
help='Set as default remote.')
|
||||
remote_add_parser.set_defaults(func=CmdRemoteAdd)
|
||||
|
||||
REMOTE_DEFAULT_HELP = 'Set/unset default remote.'
|
||||
remote_default_parser = remote_subparsers.add_parser(
|
||||
'default',
|
||||
parents=[parent_parser],
|
||||
description=REMOTE_DEFAULT_HELP,
|
||||
help=REMOTE_DEFAULT_HELP)
|
||||
remote_default_parser.add_argument(
|
||||
'name',
|
||||
nargs='?',
|
||||
help='Name of the remote.')
|
||||
remote_default_parser.add_argument(
|
||||
'-u',
|
||||
'--unset',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Unset default remote.')
|
||||
remote_default_parser.add_argument(
|
||||
'--global',
|
||||
dest='glob',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Use global config.')
|
||||
remote_default_parser.add_argument(
|
||||
'--system',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Use system config.')
|
||||
remote_default_parser.add_argument(
|
||||
'--local',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Use local config.')
|
||||
remote_default_parser.set_defaults(func=CmdRemoteDefault)
|
||||
|
||||
REMOTE_REMOVE_HELP = 'Remove remote.'
|
||||
remote_remove_parser = remote_subparsers.add_parser(
|
||||
'remove',
|
||||
|
||||
@@ -62,6 +62,13 @@ class CmdRemoteModify(CmdConfig):
|
||||
return super(CmdRemoteModify, self).run()
|
||||
|
||||
|
||||
class CmdRemoteDefault(CmdConfig):
|
||||
def run(self):
|
||||
self.args.value = self.args.name
|
||||
self.args.name = 'core.remote'
|
||||
return super(CmdRemoteDefault, self).run()
|
||||
|
||||
|
||||
class CmdRemoteList(CmdConfig):
|
||||
def run(self):
|
||||
for section in self.configobj.keys():
|
||||
|
||||
@@ -96,3 +96,27 @@ class TestRemoteRemove(TestDvc):
|
||||
|
||||
ret = main(['remote', 'remove', remote])
|
||||
self.assertEqual(ret, 0)
|
||||
|
||||
|
||||
class TestRemoteDefault(TestDvc):
|
||||
def test(self):
|
||||
remote = 'mys3'
|
||||
ret = main(['remote', 'add', 'mys3', 's3://bucket/path'])
|
||||
self.assertEqual(ret, 0)
|
||||
|
||||
ret = main(['remote', 'default', 'mys3'])
|
||||
self.assertEqual(ret, 0)
|
||||
config_file = os.path.join(self.dvc.dvc_dir, Config.CONFIG)
|
||||
config = configobj.ConfigObj(config_file)
|
||||
default = config[Config.SECTION_CORE][Config.SECTION_CORE_REMOTE]
|
||||
self.assertEqual(default, remote)
|
||||
|
||||
ret = main(['remote', 'default', '--unset'])
|
||||
self.assertEqual(ret, 0)
|
||||
config = configobj.ConfigObj(config_file)
|
||||
core = config.get(Config.SECTION_CORE)
|
||||
if core is not None:
|
||||
default = core.get(Config.SECTION_CORE_REMOTE)
|
||||
else:
|
||||
default = None
|
||||
self.assertEqual(default, None)
|
||||
|
||||
Reference in New Issue
Block a user