dvc: implement dvc destroy

Fixes #621

Signed-off-by: Ruslan Kuprieiev <[email protected]>
This commit is contained in:
Ruslan Kuprieiev
2018-07-15 07:45:25 +03:00
parent 64da1b126f
commit 918bb53b75
3 changed files with 28 additions and 0 deletions
+10
View File
@@ -7,6 +7,7 @@ from multiprocessing import cpu_count
from dvc.logger import Logger
from dvc.command.init import CmdInit
from dvc.command.destroy import CmdDestroy
from dvc.command.remove import CmdRemove
from dvc.command.move import CmdMove
from dvc.command.run import CmdRun
@@ -87,6 +88,15 @@ def parse_args(argv=None):
help="Initiate dvc in directory that is not tracked by any scm tool(e.g. git)")
init_parser.set_defaults(func=CmdInit)
# Destroy
destroy_parser = subparsers.add_parser(
'destroy',
parents=[parent_parser],
help='Destroy dvc')
destroy_parser.set_defaults(func=CmdDestroy)
# Add
add_parser = subparsers.add_parser(
'add',
+11
View File
@@ -0,0 +1,11 @@
from dvc.command.common.base import CmdBase
class CmdDestroy(CmdBase):
def run(self):
try:
self.project.destroy()
except Exception as exc:
self.project.logger.error('Failed to destroy DVC', exc)
return 1
return 0
+7
View File
@@ -2,6 +2,7 @@ import os
import csv
import stat
import json
import shutil
import networkx as nx
from jsonpath_rw import parse
@@ -96,6 +97,12 @@ class Project(object):
return proj
def destroy(self):
for stage in self.stages():
stage.remove()
shutil.rmtree(self.dvc_dir)
def _ignore(self):
l = [self.state.state_file,
self.state._lock_file.lock_file,