~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to clean_tree.py

  • Committer: Charlie Shepherd
  • Date: 2007-04-04 18:12:00 UTC
  • mto: This revision was merged to the branch mainline in revision 538.
  • Revision ID: masterdriverz@gentoo.org-20070404181200-wqiwytdor9srux2v
Remove all trailing whitespace

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
23
22
from bzrlib.workingtree import WorkingTree
24
23
 
25
24
 
43
42
                yield tree.abspath(subp), subp
44
43
 
45
44
 
46
 
def clean_tree(directory, unknown=False, ignored=False, detritus=False, 
47
 
               dry_run=False):
 
45
def clean_tree(directory, out=sys.stdout, unknown=False, ignored=False,
 
46
               detritus=False, dry_run=False):
48
47
    """Remove files in the specified classes from the tree"""
49
48
    tree = WorkingTree.open_containing(directory)[0]
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):
 
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):
56
59
    """Delete files in the deletables iterable"""
57
60
    has_deleted = False
58
61
    for path, subp in deletables:
59
62
        if not has_deleted:
60
 
            note("deleting paths:")
 
63
            print >>out, "deleting paths:"
61
64
            has_deleted = True
62
 
        note('  ' + subp)
 
65
        print >>out, '  ' + subp
63
66
        if not dry_run:
64
67
            if isdir(path):
65
68
                shutil.rmtree(path)
66
69
            else:
67
70
                os.unlink(path)
68
71
    if not has_deleted:
69
 
        note("No files deleted.")
 
72
        print >>out, "No files deleted."