cloud-init/setup.py
Joshua Harlow 6a1e0d2426 1. Add a comment that the upstart dir should probably be put elsewhere sometime (in a distro specific build?)
since not all distros fully support upstart that is in config here or even have upstart in general at all (for various reasons)
2. Found out that we really do need to specify these 2 packages due to the following
   a. The cloudinit root needs to be a package (pretty obvious)
   b. Not so obvious is the cloudinit.conf also needs to be a package so that its modules can be directly imported without 
      referring to the module name.
2012-06-20 16:34:09 -07:00

93 lines
3.1 KiB
Python
Executable File

# vi: ts=4 expandtab
#
# Distutils magic for ec2-init
#
# Copyright (C) 2009 Canonical Ltd.
# Copyright (C) 2012 Yahoo! Inc.
#
# Author: Soren Hansen <soren@canonical.com>
# Author: Joshua Harlow <harlowja@yahoo-inc.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from glob import glob
import os
import re
from distutils.core import setup
def is_f(p):
return os.path.isfile(p)
def versions(fn="ChangeLog"):
with open(fn, 'r') as fh:
lines = fh.read().splitlines()
versions = []
for line in lines:
line = line.strip()
if line.startswith("-") or not line:
continue
if not re.match(r"[\d]", line):
continue
line = line.strip(":")
if (re.match(r"^[\d+]\.[\d+]\.[\d+]$", line) or
re.match(r"^[\d+]\.[\d+]$", line)):
versions.append(line)
return versions
def requires(fn='Requires'):
requires = []
with open(fn, 'r') as fh:
lines = fh.read().splitlines()
for line in lines:
line = line.strip()
if not line or line[0] == '#':
continue
else:
requires.append(line)
return requires
setup(name='cloud-init',
version=versions()[0],
description='EC2 initialisation magic',
author='Scott Moser',
author_email='scott.moser@canonical.com',
url='http://launchpad.net/cloud-init/',
# This second package referencing cloudinit.conf.*
# makes the config modules accessible to the whole
# import system...
packages=['cloudinit', 'cloudinit.conf'],
scripts=['bin/cloud-init',
'tools/cloud-init-per',
],
data_files=[('/etc/cloud', glob('config/*.cfg')),
('/etc/cloud/cloud.cfg.d', glob('config/cloud.cfg.d/*')),
('/etc/cloud/templates', glob('templates/*')),
# Only really need for upstart based systems
('/etc/init', glob('upstart/*.conf')),
('/usr/share/cloud-init', []),
('/usr/lib/cloud-init',
['tools/uncloud-init', 'tools/write-ssh-key-fingerprints']),
('/usr/share/doc/cloud-init', filter(is_f, glob('doc/*'))),
('/usr/share/doc/cloud-init/examples', filter(is_f, glob('doc/examples/*'))),
('/usr/share/doc/cloud-init/examples/seed', filter(is_f, glob('doc/examples/seed/*'))),
('/etc/profile.d', ['tools/Z99-cloud-locale-test.sh']),
],
install_requires=requires(),
)