blob: 7daf4b861048d214ecb224a02743d7301a40354b [file] [log] [blame]
import subprocess
import logging
logger = logging.getLogger(__name__)
def cassandra_git_branch(cassandra_dir):
'''Get the name of the git branch at CASSANDRA_DIR.
'''
try:
p = subprocess.Popen(['git', 'branch'], cwd=cassandra_dir,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except OSError as e: # e.g. if git isn't available, just give up and return None
logger.debug('shelling out to git failed: {}'.format(e))
return
out, err = p.communicate()
# fail if git failed
if p.returncode != 0:
raise RuntimeError('Git printed error: {err}'.format(err=err.decode("utf-8")))
[current_branch_line] = [line for line in out.decode("utf-8").splitlines() if line.startswith('*')]
return current_branch_line[1:].strip()