diff hglib/__init__.py @ 60:ce516ed9bc0d

hglib: add init command There's not much value to adding this to hgclient since that will require a repo in the first place. Instead we're providing this as a top level function so users don't have to create a repo by themselves.
author Idan Kamara <idankk86@gmail.com>
date Fri, 19 Aug 2011 20:15:03 +0300
parents f4cc7ff53cf8
children d1f57f162274
line wrap: on
line diff
--- a/hglib/__init__.py	Fri Aug 19 20:14:15 2011 +0300
+++ b/hglib/__init__.py	Fri Aug 19 20:15:03 2011 +0300
@@ -1,4 +1,4 @@
-import client
+import client, subprocess, util, error
 
 HGPATH = 'hg'
 
@@ -7,3 +7,17 @@
     cwd). HGENCODING is set to the given encoding. configs is a list of key, value,
     similar to those passed to hg --config. '''
     return client.hgclient(path, encoding, configs)
+
+def init(dest=None, ssh=None, remotecmd=None, insecure=False,
+         encoding=None, configs=None):
+    args = util.cmdbuilder('init', dest, e=ssh, remotecmd=remotecmd,
+                           insecure=insecure)
+
+    args.insert(0, HGPATH)
+    proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+
+    out, err = proc.communicate()
+    if proc.returncode:
+        raise error.CommandError(args, proc.returncode, out, err)
+
+    return open(dest, encoding, configs)