Mercurial > hg > mercurial-crew-with-dirclash
comparison contrib/purge/purge.py @ 4150:cf26f4564000
Merge _remove_file() and _remove_dir() in a single function
author | Emanuele Aina <faina.mail@tiscali.it> |
---|---|
date | Tue, 06 Mar 2007 17:45:44 -0300 |
parents | e59286f15189 |
children | 337010e50dcd |
comparison
equal
deleted
inserted
replaced
4149:e59286f15189 | 4150:cf26f4564000 |
---|---|
43 files.append(f) | 43 files.append(f) |
44 | 44 |
45 directories.sort() | 45 directories.sort() |
46 | 46 |
47 for f in files: | 47 for f in files: |
48 self._remove_file(f) | 48 if f not in self._repo.dirstate: |
49 self._ui.note(_('Removing file %s\n') % f) | |
50 self._remove(os.remove, f) | |
49 | 51 |
50 for f in directories[::-1]: | 52 for f in directories[::-1]: |
51 if not os.listdir(repo.wjoin(f)): | 53 if not os.listdir(repo.wjoin(f)): |
52 self._remove_dir(f) | 54 self._ui.note(_('Removing directory %s\n') % f) |
55 self._remove(os.rmdir, f) | |
53 | 56 |
54 self._repo = None | 57 self._repo = None |
55 self._ui = None | 58 self._ui = None |
56 | 59 |
57 def _error(self, msg): | 60 def _error(self, msg): |
58 if self._abort_on_err: | 61 if self._abort_on_err: |
59 raise util.Abort(msg) | 62 raise util.Abort(msg) |
60 else: | 63 else: |
61 self._ui.warn(_('warning: %s\n') % msg) | 64 self._ui.warn(_('warning: %s\n') % msg) |
62 | 65 |
63 def _remove_file(self, name): | 66 def _remove(self, remove_func, name): |
64 if name in self._repo.dirstate: | |
65 return | |
66 self._ui.note(_('Removing file %s\n') % name) | |
67 if self._act: | 67 if self._act: |
68 try: | 68 try: |
69 os.remove(self._repo.wjoin(name)) | 69 remove_func(self._repo.wjoin(name)) |
70 except OSError, e: | |
71 self._error(_('%s cannot be removed') % name) | |
72 else: | |
73 self._ui.write('%s%s' % (name, self._eol)) | |
74 | |
75 def _remove_dir(self, name): | |
76 self._ui.note(_('Removing directory %s\n') % name) | |
77 if self._act: | |
78 try: | |
79 os.rmdir(self._repo.wjoin(name)) | |
80 except OSError, e: | 70 except OSError, e: |
81 self._error(_('%s cannot be removed') % name) | 71 self._error(_('%s cannot be removed') % name) |
82 else: | 72 else: |
83 self._ui.write('%s%s' % (name, self._eol)) | 73 self._ui.write('%s%s' % (name, self._eol)) |
84 | 74 |