forked from openafs-contrib/robotframework-openafslibrary
-
Notifications
You must be signed in to change notification settings - Fork 0
/
configure.py
41 lines (36 loc) · 1.08 KB
/
configure.py
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
import os
import re
def which(program):
"""Find a program in the PATH or return 'missing'."""
for path in os.environ['PATH'].split(os.pathsep):
path = os.path.join(path.strip('"'), program)
if os.access(path, os.X_OK):
if ' ' in path:
path = '"{0}"'.format(path)
return path
return 'missing'
def name():
"""Extract our name from the setup.py."""
setup = open('setup.py').read()
match = re.search(r'NAME\s*=\s*[\'\"](.*)[\'\"]', setup)
if match:
return match.group(1)
raise ValueError('NAME not found in setup.py.')
def version():
"""Determine the version number from the most recent git tag."""
version = os.popen('git describe').read() or '0.0.0'
return version.lstrip('v').strip()
NAME = name()
VERSION = version()
PYTHON = which('python')
PYFLAKES = which('pyflakes')
PIP = which('pip')
INSTALL = 'pip' if PIP != 'missing' else 'setup'
open('Makefile.config', 'w').write("""\
NAME={NAME}
VERSION={VERSION}
PIP={PIP}
PYTHON={PYTHON}
PYFLAKES={PYFLAKES}
INSTALL={INSTALL}\
""".format(**locals()))