using shutil.rmtree to remove directories saves a lot of code
[sfa.git] / setup.py
1 #!/usr/bin/python
2
3 """
4 Installation script for the geniwrapper module
5 """
6
7 from distutils.core import setup, Extension
8 import os, sys
9 import shutil
10
11 version = '0.2'
12 scripts = ['geni/gimport.py', 'geni/plc.py', 'cmdline/sfi.py']
13 package_dirs = ['geni', 'geni/util', 'geni/methods']
14 data_files = [('/etc/geni/', ['geni/aggregates.xml', 'geni/registries.xml', 'geni/util/geni_config', 'cmdline/configSfi.sh'])]
15
16         
17 if sys.argv[1] in ['uninstall', 'remove', 'delete']:
18     python_path = sys.path
19     site_packages_only = lambda path: path.endswith('site-packages') 
20     site_packages_path = filter(site_packages_only, python_path)
21     add_geni_path = lambda path: path + os.sep + 'geni'
22     site_packages_path = map(add_geni_path, site_packages_path) 
23     remove_dirs = ['/etc/geni/'] + site_packages_path
24     remove_files = ['/usr/bin/gimport.py', '/usr/bin/plc.py', '/usr/bin/sfi.py']
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     setup(name='geniwrapper', 
43       version = version,
44       packages = package_dirs, 
45       data_files = data_files,
46       ext_modules = [],
47       py_modules = [],
48       scripts = scripts,   
49       url = 'http://svn.planet-lab.org/svn/geniwrapper/',
50       description = "Geni API",      
51       long_description = """\
52 Geniwrapper implements the Geni interface which serves 
53 as a layer between the existing PlanetLab interfaces 
54 and the Geni API.
55                     """,
56       license = 'GPL')