[PATCH 3 of 4 hglib] client: use the cmdbuilder

Idan Kamara idankk86 at gmail.com
Fri Aug 5 10:42:40 CDT 2011


# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1312558485 -10800
# Node ID 8f76a5c54b1591ffc949405fe3c01c93d80daf4e
# Parent  9bfd61e1ab1c76b1407b1264cb509e4827e5da58
client: use the cmdbuilder

diff -r 9bfd61e1ab1c -r 8f76a5c54b15 hglib/client.py
--- a/hglib/client.py	Fri Aug 05 18:34:44 2011 +0300
+++ b/hglib/client.py	Fri Aug 05 18:34:45 2011 +0300
@@ -1,6 +1,8 @@
 import subprocess, os, struct, cStringIO, collections
 import hglib, error, util, templates
 
+from util import cmdbuilder
+
 class hgclient(object):
     inputfmt = '>I'
     outputfmt = '>cI'
@@ -158,10 +160,7 @@
         return d
 
     def log(self, revrange=None):
-        args = ['log'] + templates.changeset
-        if revrange:
-            args.append('-r')
-            args += revrange
+        args = cmdbuilder('log', template=templates.changeset, rev=revrange)
 
         out = self.outputruncommand(args)[1]
         out = out.split('\0')[:-1]
@@ -169,13 +168,9 @@
         return self._parserevs(out)
 
     def incoming(self, revrange=None, path=None):
-        args = ['incoming'] + templates.changeset
-        if revrange:
-            args.append('-r')
-            args += revrange
-
-        if path:
-            args += [path]
+        args = cmdbuilder('incoming',
+                          path,
+                          template=templates.changeset, rev=revrange)
 
         ret, out, err = self.outputruncommand(args, raiseonerror=False)
         if not ret:
@@ -187,13 +182,9 @@
             raise error.CommandError(args, ret, out, err)
 
     def outgoing(self, revrange=None, path=None):
-        args = ['outgoing'] + templates.changeset
-        if revrange:
-            args.append('-r')
-            args += revrange
-
-        if path:
-            args += [path]
+        args = cmdbuilder('outgoing',
+                          path,
+                          template=templates.changeset, rev=revrange)
 
         ret, out, err = self.outputruncommand(args, raiseonerror=False)
         if not ret:
@@ -206,10 +197,7 @@
 
     def commit(self, message, addremove=False):
         # --debug will print the committed cset
-        args = ['commit', '--debug', '-m', message]
-
-        if addremove:
-            args += ['-A']
+        args = cmdbuilder('commit', debug=True, m=message, A=addremove)
 
         out = self.outputruncommand(args)[1]
         rev = out.split(':')[1]
@@ -226,7 +214,7 @@
 
         try:
             inchannels = {'I' : fp.read, 'L' : fp.readline}
-            self.outputruncommand(['import', '-'], inchannels)
+            self.outputruncommand(cmdbuilder('import', _=True), inchannels)
         finally:
             if fp != patch:
                 fp.close()
@@ -236,24 +224,12 @@
 
     def clone(self, source='.', dest=None, branch=None, updaterev=None,
               revrange=None):
-        args = ['clone']
-
-        if branch:
-            args += ['-b', branch]
-        if updaterev:
-            args += ['-u', updaterev]
-        if revrange:
-            args.append('-r')
-            args += revrange
-        args.append(source)
-
-        if dest:
-            args.append(dest)
-
+        args = cmdbuilder('clone', source, dest, b=branch, u=updaterev, r=revrange)
         self.outputruncommand(args)
 
     def tip(self):
-        out = self.outputruncommand(['tip'] + templates.changeset)[1]
+        args = cmdbuilder('tip', template=templates.changeset)
+        out = self.outputruncommand(args)[1]
         out = out.split('\0')
 
         return self._parserevs(out)[0]
@@ -279,20 +255,14 @@
 
             return dict([s.split(' = ') for s in out.rstrip().split('\n')])
         else:
-            args = ['paths', name]
+            args = cmdbuilder('paths', name)
             ret, out, err = self.outputruncommand(args, raiseonerror=False)
             if ret:
                 raise error.CommandError(args, ret, out, err)
             return out.rstrip()
 
     def cat(self, files, rev=None, output=None):
-        args = ['cat']
-        if rev:
-            args += ['-r', rev]
-        if output:
-            args += ['-o', output]
-
-        args += files
+        args = cmdbuilder('cat', *files, r=rev, o=output)
         ret, out, err = self.outputruncommand(args)
 
         if not output:
diff -r 9bfd61e1ab1c -r 8f76a5c54b15 hglib/templates.py
--- a/hglib/templates.py	Fri Aug 05 18:34:44 2011 +0300
+++ b/hglib/templates.py	Fri Aug 05 18:34:45 2011 +0300
@@ -1,2 +1,1 @@
-changeset = ['--template',
-             '{rev}\\0{node}\\0{tags}\\0{branch}\\0{author}\\0{desc}\\0']
+changeset = '{rev}\\0{node}\\0{tags}\\0{branch}\\0{author}\\0{desc}\\0'


More information about the Mercurial-devel mailing list