cleanup
[sfa.git] / setup.py
1 #!/usr/bin/python
2
3 """
4 Installation script for the geniwrapper module
5 """
6
7 import os, sys
8 import shutil
9 from distutils.core import setup, Extension
10
11 scripts = ['geni/gimport.py', 'geni/plc.py', 'cmdline/sfi.py', 'config/geni-config-tty']
12 package_dirs = ['geni', 'geni/util', 'geni/methods']
13 data_files = [ ('/etc/geni/', ['config/aggregates.xml', 'config/registries.xml', 
14                                'config/geni_config', 'config/sfi_config']),
15                ('/etc/init.d/', ['geni/init.d/geni'])]
16 symlinks = ['/usr/share/geniwrapper']
17 initscripts = ['/etc/init.d/geni']
18         
19 if sys.argv[1] in ['uninstall', 'remove', 'delete', 'clean']:
20     python_path = sys.path
21     site_packages_path = [ path + os.sep + 'geni' for path in python_path if path.endswith('site-packages')]
22     remove_dirs = ['/etc/geni/'] + site_packages_path
23     remove_files = ['/usr/bin/gimport.py', '/usr/bin/plc.py', '/usr/bin/sfi.py', '/usr/bin/geni-config-tty'] + \
24                     symlinks + initscripts
25     
26     # remove files   
27     for filepath in remove_files:
28         print "removing", filepath, "...",
29         try: 
30             os.remove(filepath)
31             print "success"
32         except: print "failed"
33     # remove directories 
34     for directory in remove_dirs: 
35         print "removing", directory, "...",
36         try: 
37             shutil.rmtree(directory)
38             print "success"
39         except: print "failed"
40  
41 else:
42     
43     # avoid repeating what's in the specfile already
44     setup(packages = package_dirs, 
45           data_files = data_files,
46           ext_modules = [],
47           py_modules = [],
48           scripts = scripts,   
49           )
50
51     # create symlink to geniwrapper source in /usr/share
52     python_path = sys.path
53     site_packages_path = [ path + os.sep + 'geni' for path in python_path if path.endswith('site-packages')]
54     # python path usualy has /usr/local/lib/ path , filter this out
55     site_packages_path = [x for x in site_packages_path if 'local' not in x]
56
57     # we can not do this here as installation root might change paths
58     # - baris
59     #
60     # for src in site_packages_path:
61     #     for dst in symlinks:
62     #         try: 
63     #             os.symlink(src, dst)
64     #         except: pass
65     # for initscript in initscripts:
66     #     os.chmod(initscript, 00744)