summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py52
1 files changed, 38 insertions, 14 deletions
diff --git a/setup.py b/setup.py
index 556103b9..0e609d6e 100755
--- a/setup.py
+++ b/setup.py
@@ -63,12 +63,14 @@ def systemd_unitdir():
INITSYS_FILES = {
'sysvinit': [f for f in glob('sysvinit/redhat/*') if is_f(f)],
+ 'sysvinit_freebsd': [f for f in glob('sysvinit/freebsd/*') if is_f(f)],
'sysvinit_deb': [f for f in glob('sysvinit/debian/*') if is_f(f)],
'systemd': [f for f in glob('systemd/*') if is_f(f)],
'upstart': [f for f in glob('upstart/*') if is_f(f)],
}
INITSYS_ROOTS = {
'sysvinit': '/etc/rc.d/init.d',
+ 'sysvinit_freebsd': '/usr/local/etc/rc.d',
'sysvinit_deb': '/etc/init.d',
'systemd': systemd_unitdir(),
'upstart': '/etc/init/',
@@ -88,6 +90,41 @@ def read_requires():
return str(deps).splitlines()
+# Install everything in the right location and take care of Linux (default) and
+# FreeBSD systems.
+def read_datafiles():
+ sysname = os.uname()[0]
+ if sysname == 'FreeBSD':
+ return [
+ ('/usr/local/etc/cloud', glob('config/*.cfg')),
+ ('/usr/local/etc/cloud/cloud.cfg.d', glob('config/cloud.cfg.d/*')),
+ ('/usr/local/etc/cloud/templates', glob('templates/*')),
+ ('/usr/local/lib/cloud-init',
+ ['tools/uncloud-init', 'tools/write-ssh-key-fingerprints']),
+ ('/usr/local/share/doc/cloud-init',
+ [f for f in glob('doc/*') if is_f(f)]),
+ ('/usr/local/share/doc/cloud-init/examples',
+ [f for f in glob('doc/examples/*') if is_f(f)]),
+ ('/usr/local/share/doc/cloud-init/examples/seed',
+ [f for f in glob('doc/examples/seed/*') if is_f(f)]),
+ ]
+ else:
+ return [
+ ('/etc/cloud', glob('config/*.cfg')),
+ ('/etc/cloud/cloud.cfg.d', glob('config/cloud.cfg.d/*')),
+ ('/etc/cloud/templates', glob('templates/*')),
+ ('/usr/share/cloud-init', []),
+ ('/usr/lib/cloud-init',
+ ['tools/uncloud-init', 'tools/write-ssh-key-fingerprints']),
+ ('/usr/share/doc/cloud-init',
+ [f for f in glob('doc/*') if is_f(f)]),
+ ('/usr/share/doc/cloud-init/examples',
+ [f for f in glob('doc/examples/*') if is_f(f)]),
+ ('/usr/share/doc/cloud-init/examples/seed',
+ [f for f in glob('doc/examples/seed/*') if is_f(f)]),
+ ]
+
+
# TODO: Is there a better way to do this??
class InitsysInstallData(install):
init_system = None
@@ -136,20 +173,7 @@ setuptools.setup(name='cloud-init',
'tools/cloud-init-per',
],
license='GPLv3',
- data_files=[('/etc/cloud', glob('config/*.cfg')),
- ('/etc/cloud/cloud.cfg.d', glob('config/cloud.cfg.d/*')),
- ('/etc/cloud/templates', glob('templates/*')),
- ('/usr/share/cloud-init', []),
- ('/usr/lib/cloud-init',
- ['tools/uncloud-init',
- 'tools/write-ssh-key-fingerprints']),
- ('/usr/share/doc/cloud-init',
- [f for f in glob('doc/*') if is_f(f)]),
- ('/usr/share/doc/cloud-init/examples',
- [f for f in glob('doc/examples/*') if is_f(f)]),
- ('/usr/share/doc/cloud-init/examples/seed',
- [f for f in glob('doc/examples/seed/*') if is_f(f)]),
- ],
+ data_files=read_datafiles(),
install_requires=read_requires(),
cmdclass={
# Use a subclass for install that handles