4 Installation script for the geniwrapper module
7 from distutils.core import setup, Extension
12 scripts = ['geni/gimport.py', 'geni/plc.py', 'cmdline/sfi.py', 'geni-config-tty']
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 ('/etc/init.d/', ['geni/geniwrapper'])
17 symlinks = ['/usr/share/geniwrapper']
18 initscripts = ['/etc/init.d/geniwrapper']
20 if sys.argv[1] in ['uninstall', 'remove', 'delete']:
21 python_path = sys.path
22 site_packages_only = lambda path: path.endswith('site-packages')
23 site_packages_path = filter(site_packages_only, python_path)
24 add_geni_path = lambda path: path + os.sep + 'geni'
25 site_packages_path = map(add_geni_path, site_packages_path)
26 remove_dirs = ['/etc/geni/'] + site_packages_path
27 remove_files = ['/usr/bin/gimport.py', '/usr/bin/plc.py', '/usr/bin/sfi.py'] + \
28 symlinks + initscripts
31 for filepath in remove_files:
32 print "removing", filepath, "...",
36 except: print "failed"
38 for directory in remove_dirs:
39 print "removing", directory, "...",
41 shutil.rmtree(directory)
43 except: print "failed"
46 setup(name='geniwrapper',
48 packages = package_dirs,
49 data_files = data_files,
53 url = 'http://svn.planet-lab.org/svn/geniwrapper/',
54 description = "Geni API",
55 long_description = """\
56 Geniwrapper implements the Geni interface which serves
57 as a layer between the existing PlanetLab interfaces
62 # create symlink to geniwrapper source in /usr/share
63 python_path = sys.path
64 site_packages_only = lambda path: path.endswith('site-packages')
65 site_packages_path = filter(site_packages_only, python_path)
66 add_geni_path = lambda path: path + os.sep + 'geni'
67 site_packages_path = map(add_geni_path, site_packages_path)
68 # python path usualy has /urs/local/lib/ path , filter this out
69 site_packages_path = filter(lambda x: 'local' not in x, site_packages_path)
70 for src in site_packages_path:
75 for initscript in initscripts:
76 os.chmod(initscript, 00744)