fix packaging for sfa-nuke-plc.py
[sfa.git] / setup.py
1 #!/usr/bin/python
2
3 """
4 Installation script for the geniwrapper module
5 """
6
7 import sys, os, os.path
8 import shutil
9 from distutils.core import setup
10
11 bins = [ 'config/sfa-config-tty',
12             'sfa/plc/sfa-import-plc.py', 
13             'sfa/plc/sfa-nuke-plc.py', 
14             'sfa/server/sfa-server.py', 
15             'sfa/client/sfi.py', 
16             'sfa/client/getNodes.py',
17             'sfa/client/getRecord.py',
18             'sfa/client/setRecord.py',
19             'sfa/client/genidump.py',
20             ]
21 remove_bins = [ '/usr/bin/' + os.path.basename(bin) for bin in bins ]
22
23 package_dirs = [ 'sfa', 
24                  'sfa/client',
25                  'sfa/methods',
26                  'sfa/plc',
27                  'sfa/server',
28                  'sfa/trust',
29                  'sfa/util', 
30                  ]
31 data_files = [ ('/etc/sfa/', [ 'config/aggregates.xml', 
32                                'config/registries.xml', 
33                                'config/sfa_config', 
34                                'config/sfi_config',
35                                ]),
36                ('/etc/init.d/', ['sfa/init.d/sfa']),
37                ]
38 initscripts = [ '/etc/init.d/sfa' ]
39         
40 if sys.argv[1] in ['uninstall', 'remove', 'delete', 'clean']:
41     python_path = sys.path
42     site_packages_path = [ path + os.sep + 'sfa' for path in python_path if path.endswith('site-packages')]
43     remove_dirs = ['/etc/sfa/'] + site_packages_path
44     remove_files = remove_bins + initscripts
45     
46     # remove files   
47     for filepath in remove_files:
48         print "removing", filepath, "...",
49         try: 
50             os.remove(filepath)
51             print "success"
52         except: print "failed"
53     # remove directories 
54     for directory in remove_dirs: 
55         print "removing", directory, "...",
56         try: 
57             shutil.rmtree(directory)
58             print "success"
59         except: print "failed"
60  
61 else:
62     
63     # avoid repeating what's in the specfile already
64     setup(name='sfa',
65           packages = package_dirs, 
66           data_files = data_files,
67           ext_modules = [],
68           py_modules = [],
69           scripts = bins,   
70           )
71