Version control system wrapper allowing the developer to worry about only having to learn one command set to manage all types of repositories.

clone.py 977B

    import os import subprocess from utilities import isGit, isMercurial, isBazaar def clone(arguments): ''' Clone a repository. ''' commandSets = [ ["git", "clone"], ["hg", "clone"], ["bzr", "branch"] ] for commandSet in commandSets: command = commandSet command.extend(arguments) out, err = executeCommandWithResponse(command) if err: print("{0}: repository not found".format(command[0])) else: print("{0}: repository cloned!".format(command[0])) break def executeCommand(command): ''' Execute the given command. ''' subprocess.call(command, stderr=subprocess.STDOUT) def executeCommandWithResponse(command): ''' Execute the given command and return the output and errors. ''' proc = subprocess.Popen(command, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE) return proc.communicate()