Implement LinePad for easy line selection
[pywienerlinien] / setup.py
1 #!/usr/bin/env python
2
3 from distutils.core import setup
4
5 import re
6 import glob
7
8 PACKAGE = 'gotovienna'
9 SCRIPT_FILE = 'gotovienna-qml'
10
11 main_py = open(SCRIPT_FILE).read()
12 metadata = dict(re.findall("__([a-z]+)__ = '([^']+)'", main_py))
13 docstrings = re.findall('"""(.*?)"""', main_py, re.DOTALL)
14
15 # List the modules that need to be installed/packaged
16 PACKAGES = (
17         PACKAGE,
18 )
19
20 # Metadata fields extracted from SCRIPT_FILE
21 AUTHOR_EMAIL = metadata['author']
22 VERSION = metadata['version']
23 WEBSITE = metadata['website']
24 LICENSE = metadata['license']
25 DESCRIPTION = docstrings[0].strip()
26 if '\n\n' in DESCRIPTION:
27     DESCRIPTION, LONG_DESCRIPTION = DESCRIPTION.split('\n\n', 1)
28 else:
29     LONG_DESCRIPTION = None
30
31 # Extract name and e-mail ("Firstname Lastname <mail@example.org>")
32 AUTHOR, EMAIL = re.match(r'(.*) <(.*)>', AUTHOR_EMAIL).groups()
33
34 DATA_FILES = [
35         ('share/gotovienna', ['images/gotovienna_qml80.png']),
36         ('share/gotovienna/qml', glob.glob('qml/*')),
37 ]
38
39 setup(name=PACKAGE,
40       version=VERSION,
41       description=DESCRIPTION,
42       long_description=LONG_DESCRIPTION,
43       author=AUTHOR,
44       author_email=EMAIL,
45       license=LICENSE,
46       url=WEBSITE,
47       packages=PACKAGES,
48       scripts=[SCRIPT_FILE],
49       data_files=DATA_FILES,
50       download_url=WEBSITE+PACKAGE+'-'+VERSION+'.tar.gz')
51