+class GitCommand:
+ def __getattr__(self, name):
+ def call(*args):
+ cmd = ["git", name.replace('_', '-')] + list(args)
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE) # TODO use with
+ (stdout, stderr) = p.communicate()
+ if p.returncode != 0:
+ raise Exception("Running %s returned non-zero exit code %d" % (str(cmd), p.returncode))
+ return filter(len, stdout.split('\n')) # return list of non-empty lines
+ return call
+git = GitCommand()
+