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

33

34

35

36

37

38

39

40

41

42

43

44

# This file is part of Buildbot.  Buildbot is free software: you can 

# redistribute it and/or modify it under the terms of the GNU General Public 

# License as published by the Free Software Foundation, version 2. 

# 

# This program is distributed in the hope that it will be useful, but WITHOUT 

# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 

# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more 

# details. 

# 

# You should have received a copy of the GNU General Public License along with 

# this program; if not, write to the Free Software Foundation, Inc., 51 

# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 

# 

# Copyright Buildbot Team Members 

 

# strategy: 

# 

# if there is a VERSION file, use its contents. otherwise, call git to 

# get a version string. if that also fails, use 'latest'. 

# 

import os 

 

version = "latest" 

 

try: 

    fn = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'VERSION') 

    version = open(fn).read().strip() 

 

except IOError: 

    from subprocess import Popen, PIPE, STDOUT 

    import re 

 

    VERSION_MATCH = re.compile(r'\d+\.\d+\.\d+(\w|-)*') 

 

    try: 

        p = Popen(['git', 'describe', '--tags', '--always'], stdout=PIPE, stderr=STDOUT) 

        out = p.communicate()[0] 

 

        if (not p.returncode) and out: 

            v = VERSION_MATCH.search(out) 

            if v: 

                version = v.group() 

    except OSError: 

        pass