summaryrefslogtreecommitdiff
path: root/linaropy/rn/gccclone.py
blob: 79e500a80bd5138f757e939ec774b034ae8d5656 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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("--no-pager", "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