chiark / gitweb /
Allow the synchronisation of the unapplied patches
[stgit] / setup.py
CommitLineData
41a6d859
CM
1#!/usr/bin/env python
2
453d47ae 3import sys, glob
41a6d859
CM
4from distutils.core import setup
5
453d47ae
CM
6from stgit.version import version, git_min_ver, python_min_ver
7from stgit.run import Run
8
9def __version_to_list(version):
10 """Convert a version string to a list of numbers or strings
11 """
12 ver_list = []
13 for p in version.split('.'):
14 try:
15 n = int(p)
16 except ValueError:
17 n = p
18 ver_list.append(n)
19 return ver_list
20
21def __check_min_version(min_ver, ver):
22 """Check whether ver is greater or equal to min_ver
23 """
24 min_ver_list = __version_to_list(min_ver)
25 ver_list = __version_to_list(ver)
26 return min_ver_list <= ver_list
27
28def __check_python_version():
29 """Check the minimum Python version
30 """
31 pyver = '.'.join(str(n) for n in sys.version_info)
32 if not __check_min_version(python_min_ver, pyver):
33 print >> sys.stderr, 'Python version %s or newer required. Found %s' \
34 % (python_min_ver, pyver)
35 sys.exit(1)
36
37def __check_git_version():
38 """Check the minimum GIT version
39 """
40 gitver = Run('git', '--version').output_one_line().split()[2]
41 if not __check_min_version(git_min_ver, gitver):
42 print >> sys.stderr, 'GIT version %s or newer required. Found %s' \
43 % (git_min_ver, gitver)
44 sys.exit(1)
45
46# Check the minimum versions required
47if sys.argv[1] in ['install', 'build']:
48 __check_python_version()
49 __check_git_version()
41a6d859
CM
50
51setup(name = 'stgit',
52 version = version,
53 license = 'GPLv2',
54 author = 'Catalin Marinas',
a2275a12 55 author_email = 'catalin.marinas@gmail.com',
41a6d859
CM
56 url = 'http://www.procode.org/stgit/',
57 description = 'Stacked GIT',
58 long_description = 'Push/pop utility on top of GIT',
3659ef88 59 scripts = ['stg'],
957526bf 60 packages = ['stgit', 'stgit.commands'],
47e93ba9
CM
61 data_files = [('share/stgit/templates', glob.glob('templates/*.tmpl')),
62 ('share/stgit/examples', glob.glob('examples/*.tmpl')),
abcc2620 63 ('share/stgit/examples', ['examples/gitconfig']),
1aaf55c9
CM
64 ('share/stgit/contrib', ['contrib/diffcol.sh',
65 'contrib/stgbashprompt.sh',
66 'contrib/stgit-completion.bash']),
d1c8fcd7 67 ('share/doc/stgit', glob.glob('doc/*.txt'))]
41a6d859 68 )