import logging from sh import git from ..git.clone import Clone from ..cd import cd class GCCClone(Clone): def __init__(self, proj, clonedir=None, remote=None): super(GCCClone, self).__init__(proj, clonedir, remote) logging.info("Changing directory to clonedir %s." % clonedir) with cd(clonedir): try: with open('gcc/BASE-VER', 'r') as f: self.basever = f.readline().strip() except: raise IOError('gcc/BASE-VER not found in ' + clonedir) log = git("log", "-n 1", "--grep=Merge branch") for logline in log: if logline.lstrip().startswith("Merge"): # For some reason rsplit('.') isn't working. self.fsfrev = logline.lstrip().rsplit(None, 1)[ 1].split('.', 1)[0] def get_base_version(self): return self.basever def get_fsf_revision(self): return self.fsfrev