mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-06 23:09:55 +01:00
64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
from __future__ import unicode_literals
|
|
|
|
import argparse
|
|
import logging
|
|
|
|
from dvc.command.base import append_doc_link
|
|
from dvc.command.base import CmdBase
|
|
from dvc.exceptions import DvcException
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class CmdLockBase(CmdBase):
|
|
def _run(self, unlock):
|
|
for target in self.args.targets:
|
|
try:
|
|
self.repo.lock_stage(target, unlock=unlock)
|
|
except DvcException:
|
|
logger.exception(
|
|
"failed to {}lock '{}'".format(
|
|
"un" if unlock else "", target
|
|
)
|
|
)
|
|
|
|
return 1
|
|
return 0
|
|
|
|
|
|
class CmdLock(CmdLockBase):
|
|
def run(self):
|
|
return self._run(False)
|
|
|
|
|
|
class CmdUnlock(CmdLockBase):
|
|
def run(self):
|
|
return self._run(True)
|
|
|
|
|
|
def add_parser(subparsers, parent_parser):
|
|
LOCK_HELP = "Lock DVC-files."
|
|
lock_parser = subparsers.add_parser(
|
|
"lock",
|
|
parents=[parent_parser],
|
|
description=append_doc_link(LOCK_HELP, "lock"),
|
|
help=LOCK_HELP,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
)
|
|
lock_parser.add_argument("targets", nargs="+", help="DVC-files to lock.")
|
|
lock_parser.set_defaults(func=CmdLock)
|
|
|
|
UNLOCK_HELP = "Unlock DVC-files."
|
|
unlock_parser = subparsers.add_parser(
|
|
"unlock",
|
|
parents=[parent_parser],
|
|
description=append_doc_link(UNLOCK_HELP, "unlock"),
|
|
help=UNLOCK_HELP,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
)
|
|
unlock_parser.add_argument(
|
|
"targets", nargs="+", help="DVC-files to unlock."
|
|
)
|
|
unlock_parser.set_defaults(func=CmdUnlock)
|