changeset 4153:af72395580e8

Delete the Purge class, refactoring Purge.purge() in dopurge()
author Emanuele Aina <faina.mail@tiscali.it>
date Tue, 06 Mar 2007 17:45:47 -0300
parents 1c0488b58ece
children 15cd36db4230
files contrib/purge/purge.py
diffstat 1 files changed, 32 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/contrib/purge/purge.py
+++ b/contrib/purge/purge.py
@@ -21,46 +21,42 @@ from mercurial import hg, util
 from mercurial.i18n import _
 import os
 
-class Purge(object):
-    def __init__(self):
-        pass
+def dopurge(ui, repo, dirs=None, act=True, abort_on_err=False, eol='\n'):
+    def error(msg):
+        if abort_on_err:
+            raise util.Abort(msg)
+        else:
+            ui.warn(_('warning: %s\n') % msg)
 
-    def purge(self, ui, repo, dirs=None, act=True, abort_on_err=False, eol='\n'):
-        def error(msg):
-            if abort_on_err:
-                raise util.Abort(msg)
-            else:
-                ui.warn(_('warning: %s\n') % msg)
-
-        def remove(remove_func, name):
-            if act:
-                try:
-                    remove_func(os.path.join(repo.root, name))
-                except OSError, e:
-                    error(_('%s cannot be removed') % name)
-            else:
-                ui.write('%s%s' % (name, eol))
+    def remove(remove_func, name):
+        if act:
+            try:
+                remove_func(os.path.join(repo.root, name))
+            except OSError, e:
+                error(_('%s cannot be removed') % name)
+        else:
+            ui.write('%s%s' % (name, eol))
 
-        directories = []
-        files = []
-        for src, f, st in repo.dirstate.statwalk(files=dirs, ignored=True,
-                                                 directories=True):
-            if   src == 'd':
-                directories.append(f)
-            elif src == 'f' and f not in repo.dirstate:
-                files.append(f)
+    directories = []
+    files = []
+    for src, f, st in repo.dirstate.statwalk(files=dirs, ignored=True,
+                                             directories=True):
+        if   src == 'd':
+            directories.append(f)
+        elif src == 'f' and f not in repo.dirstate:
+            files.append(f)
 
-        directories.sort()
+    directories.sort()
 
-        for f in files:
-            if f not in repo.dirstate:
-                ui.note(_('Removing file %s\n') % f)
-                remove(os.remove, f)
+    for f in files:
+        if f not in repo.dirstate:
+            ui.note(_('Removing file %s\n') % f)
+            remove(os.remove, f)
 
-        for f in directories[::-1]:
-            if not os.listdir(repo.wjoin(f)):
-                ui.note(_('Removing directory %s\n') % f)
-                remove(os.rmdir, f)
+    for f in directories[::-1]:
+        if not os.listdir(repo.wjoin(f)):
+            ui.note(_('Removing directory %s\n') % f)
+            remove(os.rmdir, f)
 
 
 def purge(ui, repo, *dirs, **opts):
@@ -93,8 +89,7 @@ def purge(ui, repo, *dirs, **opts):
     if eol == '\0':
         # --print0 implies --print
         act = False
-    p = Purge()
-    p.purge(ui, repo, dirs, act, abort_on_err, eol)
+    dopurge(ui, repo, dirs, act, abort_on_err, eol)
 
 
 cmdtable = {