~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to clean_tree.py

  • Committer: Aaron Bentley
  • Date: 2006-11-30 03:18:39 UTC
  • Revision ID: aaron.bentley@utoronto.ca-20061130031839-q2s2ixzkebyrc9qq
Change recommendation to pybaz 1.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
import sys
20
20
 
21
21
from bzrlib.osutils import has_symlinks, isdir
 
22
from bzrlib.trace import note
22
23
from bzrlib.workingtree import WorkingTree
23
24
 
24
25
 
42
43
                yield tree.abspath(subp), subp
43
44
 
44
45
 
45
 
def clean_tree(directory, out=sys.stdout, unknown=False, ignored=False,
46
 
               detritus=False, dry_run=False):
 
46
def clean_tree(directory, unknown=False, ignored=False, detritus=False, 
 
47
               dry_run=False):
47
48
    """Remove files in the specified classes from the tree"""
48
49
    tree = WorkingTree.open_containing(directory)[0]
49
 
    tree.lock_read()
50
 
    try:
51
 
        deletables = iter_deletables(tree, unknown=unknown, ignored=ignored,
52
 
                                     detritus=detritus)
53
 
        delete_items(deletables, dry_run=dry_run)
54
 
    finally:
55
 
        tree.unlock()
56
 
 
57
 
 
58
 
def delete_items(deletables, out=sys.stdout, dry_run=False):
 
50
    deletables = iter_deletables(tree, unknown=unknown, ignored=ignored, 
 
51
                                 detritus=detritus)
 
52
    delete_items(deletables, dry_run=dry_run)
 
53
 
 
54
 
 
55
def delete_items(deletables, dry_run=False):
59
56
    """Delete files in the deletables iterable"""
60
57
    has_deleted = False
61
58
    for path, subp in deletables:
62
59
        if not has_deleted:
63
 
            print >>out, "deleting paths:"
 
60
            note("deleting paths:")
64
61
            has_deleted = True
65
 
        print >>out, '  ' + subp
 
62
        note('  ' + subp)
66
63
        if not dry_run:
67
64
            if isdir(path):
68
65
                shutil.rmtree(path)
69
66
            else:
70
67
                os.unlink(path)
71
68
    if not has_deleted:
72
 
        print >>out, "No files deleted."
 
69
        note("No files deleted.")