1b73eeaed0e75305e35e4925f83d0e7be1b92269
[tiramisu.git] / setup.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 from distutils.core import setup
4 from os.path import dirname, abspath, join, normpath, isdir, basename
5 from os import listdir
6
7
8 def fetch_version():
9     """Get version from version.in"""
10     return file('VERSION', 'r').readline().strip()
11
12 def return_storages():
13     "returns all the storage plugins that are living in tiramisu/storage"
14     here = dirname(abspath(__file__))
15     storages_path = normpath(join(here, 'tiramisu', 'storage'))
16     dir_content = [ content for content in listdir(storages_path) \
17                     if not content =='__pycache__']
18     storages = filter(isdir, [join(storages_path, content) \
19                       for content in dir_content])
20     storage_list = [basename(storage) for storage in storages]
21     return storage_list
22
23 packages = ['tiramisu', 'tiramisu.storage']
24 packages.extend(return_storages())
25
26 setup(
27     author="Tiramisu's team",
28     author_email='contact@cadoles.com',
29     name='tiramisu',
30     version=fetch_version(),
31     description='an options controller tool',
32     url='http://tiramisu.labs.libre-entreprise.org/',
33     classifiers=[
34         "Programming Language :: Python",
35         "Programming Language :: Python :: 2",
36         "Programming Language :: Python :: 3",
37         "Development Status :: 4 - Beta",
38         "Environment :: Other Environment",
39         "Intended Audience :: Developers",
40 #        "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
41         "License :: OSI Approved :: GNU General Public License (GPL)",
42         "Operating System :: OS Independent",
43         "Topic :: Software Development :: Libraries :: Python Modules",
44         "Topic :: Text Processing :: Linguistic"
45     ],
46     long_description="""\
47 An options controller tool
48 -------------------------------------
49
50 Due to more and more available options required to set up an operating system,
51 compiler options or whatever, it became quite annoying to hand the necessary
52 options to where they are actually used and even more annoying to add new
53 options. To circumvent these problems the configuration control was
54 introduced...
55
56 Tiramisu is an options handler and an options controller, wich aims at
57 producing flexible and fast options access.
58
59
60 This version requires Python 2.6 or later.
61 """
62     packages=packages
63 )