mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-10 23:10:42 +01:00
For the longest time we've had `repo.lock`, but were only using it from CLI when running specific command, instead of simply properly taking it on API operations. This patch takes care of that.
55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
from __future__ import unicode_literals
|
|
|
|
import argparse
|
|
import logging
|
|
|
|
import dvc.prompt as prompt
|
|
from dvc.command.base import CmdBase, append_doc_link
|
|
from dvc.exceptions import DvcException
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class CmdDestroy(CmdBase):
|
|
def run(self):
|
|
try:
|
|
statement = (
|
|
"This will destroy all information about your pipelines,"
|
|
" all data files, as well as cache in .dvc/cache."
|
|
"\n"
|
|
"Are you sure you want to continue?"
|
|
)
|
|
|
|
if not self.args.force and not prompt.confirm(statement):
|
|
raise DvcException(
|
|
"cannot destroy without a confirmation from the user."
|
|
" Use '-f' to force."
|
|
)
|
|
|
|
self.repo.destroy()
|
|
except Exception:
|
|
logger.exception("failed to destroy DVC")
|
|
return 1
|
|
return 0
|
|
|
|
|
|
def add_parser(subparsers, parent_parser):
|
|
DESTROY_HELP = "Remove DVC-files, local DVC config and data cache."
|
|
|
|
destroy_parser = subparsers.add_parser(
|
|
"destroy",
|
|
parents=[parent_parser],
|
|
description=append_doc_link(DESTROY_HELP, "destroy"),
|
|
help=DESTROY_HELP,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
)
|
|
destroy_parser.add_argument(
|
|
"-f",
|
|
"--force",
|
|
action="store_true",
|
|
default=False,
|
|
help="Force destruction.",
|
|
)
|
|
destroy_parser.set_defaults(func=CmdDestroy)
|