make tools/mic more flexible for python path
[tools/mic.git] / setup.py
1 #!/usr/bin/env python
2
3 import os, sys
4 import glob
5 from distutils.core import setup
6 try:
7     import setuptools
8     # enable "setup.py develop", optional
9 except ImportError:
10     pass
11
12 MOD_NAME = 'mic'
13
14 version_path = 'VERSION'
15 if not os.path.isfile(version_path):
16     print 'No VERSION file in topdir, abort'
17     sys.exit(1)
18
19 try:
20     # first line should be the version number
21     version = open(version_path).readline().strip()
22     if not version:
23         print 'VERSION file is invalid, abort'
24         sys.exit(1)
25
26     ver_file = open('%s/__version__.py' % MOD_NAME, 'w')
27     ver_file.write("VERSION = \"%s\"\n" % version)
28     ver_file.close()
29 except IOError:
30     print 'WARNING: Cannot write version number file'
31
32 # --install-layout is recognized after 2.5
33 if sys.version_info[:2] > (2, 5):
34     if len(sys.argv) > 1 and 'install' in sys.argv:
35         try:
36             import platform
37             (dist, ver, id) = platform.linux_distribution()
38
39             # for debian-like distros, mods will be installed to
40             # ${PYTHONLIB}/dist-packages
41             if dist in ('debian', 'Ubuntu'):
42                 sys.argv.append('--install-layout=deb')
43         except:
44             pass
45
46 PACKAGES = [MOD_NAME,
47             MOD_NAME + '/utils',
48             MOD_NAME + '/imager',
49             MOD_NAME + '/kickstart',
50             MOD_NAME + '/kickstart/custom_commands',
51             MOD_NAME + '/3rdparty/pykickstart',
52             MOD_NAME + '/3rdparty/pykickstart/commands',
53             MOD_NAME + '/3rdparty/pykickstart/handlers',
54             MOD_NAME + '/3rdparty/pykickstart/urlgrabber',
55            ]
56
57 IMAGER_PLUGINS = glob.glob(os.path.join("plugins", "imager", "*.py"))
58 BACKEND_PLUGINS = glob.glob(os.path.join("plugins", "backend", "*.py"))
59
60 setup(name=MOD_NAME,
61       version = version,
62       description = 'New MeeGo Image Creator',
63       author='Jian-feng Ding',
64       author_email='jian-feng.ding@intel.com',
65       url='https://meego.gitorious.org/meego-developer-tools/image-creator',
66       scripts=[
67           'tools/mic',
68           ],
69       packages = PACKAGES,
70       data_files = [("/usr/lib/mic/plugins/imager", IMAGER_PLUGINS),
71                     ("/usr/lib/mic/plugins/backend", BACKEND_PLUGINS),
72                     ("/etc/mic", ["distfiles/mic.conf"])]
73 )
74