mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-08 23:09:48 +01:00
* completion: use new simpler `shtab` API * completion: use FILE|DIR
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import argparse
|
|
import logging
|
|
|
|
from dvc.command import completion
|
|
from dvc.command.base import CmdBase, append_doc_link
|
|
from dvc.exceptions import DvcException
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class CmdUnprotect(CmdBase):
|
|
def run(self):
|
|
for target in self.args.targets:
|
|
try:
|
|
self.repo.unprotect(target)
|
|
except DvcException:
|
|
msg = f"failed to unprotect '{target}'"
|
|
logger.exception(msg)
|
|
return 1
|
|
return 0
|
|
|
|
|
|
def add_parser(subparsers, parent_parser):
|
|
UNPROTECT_HELP = (
|
|
"Unprotect tracked files or directories (when hardlinks or symlinks "
|
|
"have been enabled with `dvc config cache.type`)"
|
|
)
|
|
unprotect_parser = subparsers.add_parser(
|
|
"unprotect",
|
|
parents=[parent_parser],
|
|
description=append_doc_link(UNPROTECT_HELP, "unprotect"),
|
|
help=UNPROTECT_HELP,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
)
|
|
unprotect_parser.add_argument(
|
|
"targets", nargs="+", help="Data files/directories to unprotect.",
|
|
).complete = completion.FILE
|
|
unprotect_parser.set_defaults(func=CmdUnprotect)
|