commit listens to file arguments to limit changes
authorIan Weller <ian@ianweller.org>
Mon, 15 Mar 2010 01:40:12 +0000 (20:40 -0500)
committerIan Weller <ian@ianweller.org>
Mon, 15 Mar 2010 01:40:12 +0000 (20:40 -0500)
src/mw/clicommands.py
src/mw/metadir.py

index c4b016ae46f5320faebdbf2c16bdddfdfb29281b..a0fb016fad1130816702d92794871725870a687e 100644 (file)
@@ -183,10 +183,7 @@ class CommitCommand(CommandBase):
     def _do_command(self):
         self._die_if_no_init()
         self._api_setup()
-        print 'WARNING: mw does not do collision detection yet.'
-        print 'Hit ^C now if you haven\'t double checked, otherwise hit Enter'
-        raw_input()
-        status = self.metadir.working_dir_status()
+        status = self.metadir.working_dir_status(files=self.args)
         nothing_to_commit = True
         for file in status:
             print '%s %s' % (status[file], file)
@@ -194,12 +191,16 @@ class CommitCommand(CommandBase):
                 nothing_to_commit = False
         if nothing_to_commit:
             print 'nothing to commit'
+            sys.exit()
+        print
+        print 'WARNING: mw does not do collision detection yet.'
+        print 'Hit ^C now if you haven\'t double checked, otherwise hit Enter'
+        raw_input()
+        if self.options.edit_summary == None:
+            print 'Edit summary:',
+            edit_summary = raw_input()
         else:
-            if self.options.edit_summary == None:
-                print 'Edit summary:',
-                edit_summary = raw_input()
-            else:
-                edit_summary = self.options.edit_summary
+            edit_summary = self.options.edit_summary
         for file in status:
             if status[file] in ['U']:
                 # get edit token
index 4bf8c426a8488755312a7e18731cbdc589752671..295481901682441c55276068db16d605f7f53f30 100644 (file)
@@ -131,14 +131,18 @@ class Metadir(object):
         pagedata = json.loads(fd.read())
         return pagedata[str(rvid)]
 
-    def working_dir_status(self):
+    def working_dir_status(self, files=None):
         status = {}
         check = []
-        for root, dirs, files in os.walk(self.root):
-            if root == self.root:
-                dirs.remove('.mw')
-            for name in files:
-                check.append(os.path.join(root, name))
+        if files == None or files == []:
+            for root, dirs, files in os.walk(self.root):
+                if root == self.root:
+                    dirs.remove('.mw')
+                for name in files:
+                    check.append(os.path.join(root, name))
+        else:
+            for file in files:
+                check.append(os.path.join(os.getcwd(), file))
         check.sort()
         for full in check:
             name = os.path.split(full)[1]

Benjamin Mako Hill || Want to submit a patch?