checkpoint
[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
10
11 scripts = [ 'config/sfa-config-tty',
12             'geni/sfa-import-plc.py', 
13             'geni/sfa-plc.py', 
14             'cmdline/sfi.py', 
15             'cmdline/getNodes.py',
16             'cmdline/getRecord.py',
17             'cmdline/setRecord.py',
18             'cmdline/genidump.py',
19             ]
20 package_dirs = [ 'geni', 
21                  'geni/util', 
22                  'geni/methods',
23                  ]
24 data_files = [ ('/etc/sfa/', [ 'config/aggregates.xml', 
25                                'config/registries.xml', 
26                                'config/sfa_config', 
27                                'config/sfi_config',
28                                ]),
29                ('/etc/init.d/', ['geni/init.d/sfa']),
30                ('/var/www/html/wsdl', [ 'wsdl/sfa.wsdl' ] ),
31                ]
32 symlinks = [ '/usr/share/geniwrapper' ]
33 initscripts = [ '/etc/init.d/geni' ]
34         
35 if sys.argv[1] in ['uninstall', 'remove', 'delete', 'clean']:
36     python_path = sys.path
37     site_packages_path = [ path + os.sep + 'geni' for path in python_path if path.endswith('site-packages')]
38     remove_dirs = ['/etc/sfa/'] + site_packages_path
39     remove_files = [ '/usr/bin/sfa-config-tty',
40                      '/usr/bin/sfa-import-plc.py', 
41                      '/usr/bin/sfa-plc.py', 
42                      '/usr/bin/sfi.py', 
43                      '/usr/bin/getNodes.py',
44                      '/usr/bin/getRecord.py',
45                      '/usr/bin/setRecord.py',
46                      '/usr/bin/genidump.py',
47                     ] + symlinks + initscripts
48     
49     # remove files   
50     for filepath in remove_files:
51         print "removing", filepath, "...",
52         try: 
53             os.remove(filepath)
54             print "success"
55         except: print "failed"
56     # remove directories 
57     for directory in remove_dirs: 
58         print "removing", directory, "...",
59         try: 
60             shutil.rmtree(directory)
61             print "success"
62         except: print "failed"
63  
64 else:
65     
66     # avoid repeating what's in the specfile already
67     setup(name='geni',
68           packages = package_dirs, 
69           data_files = data_files,
70           ext_modules = [],
71           py_modules = [],
72           scripts = scripts,   
73           )
74
75     # create symlink to geniwrapper source in /usr/share
76     python_path = sys.path
77     site_packages_path = [ path + os.sep + 'geni' for path in python_path if path.endswith('site-packages')]
78     # python path usualy has /usr/local/lib/ path , filter this out
79     site_packages_path = [x for x in site_packages_path if 'local' not in x]
80
81     # we can not do this here as installation root might change paths
82     # - baris
83     #
84     # for src in site_packages_path:
85     #     for dst in symlinks:
86     #         try: 
87     #             os.symlink(src, dst)
88     #         except: pass
89     # for initscript in initscripts:
90     #     os.chmod(initscript, 00744)