import os import subprocess def isGit(): ''' Determine if the current directory is part of a Git repository. ''' return executeCheckingForErrors(["git", "branch"]) def isMercurial(): ''' Determine if the current directory is part of a Mercurial repository. ''' return executeCheckingForErrors(["hg", "branch"]) def isBazaar(): ''' Determine if the current directory is part of the Bazaar repository. ''' return executeCheckingForErrors(["bzr", "root"]) def execute(command): ''' Execute the given command. ''' subprocess.call(command, stderr=subprocess.STDOUT) def executeCheckingForErrors(command): ''' Execute the given command and return whether any errors were found. ''' return subprocess.call(command, stderr=subprocess.STDOUT, stdout=open(os.devnull, 'w')) == 0 def executeAndReturnResponse(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()