summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py103
1 files changed, 103 insertions, 0 deletions
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..4f667a6
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,103 @@
+#!/usr/bin/python
+# Copyright 2016 Google Inc. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Create a Python package of the Linux guest environment."""
+
+import glob
+import os
+import sys
+
+import setuptools
+
+
+def GetInitFiles(path):
+ """Get the list of relative paths to init files.
+
+ Args:
+ path: string, the relative path to the source directory.
+
+ Returns:
+ list, the relative path strings for init files.
+ """
+ valid = '%s/*' % path
+ invalid = '%s/*.sh' % path
+ return list(set(glob.glob(valid)) - set(glob.glob(invalid)))
+
+
+# Common data files to add as part of all Linux distributions.
+data_files = [
+ ('/etc/default', ['package/instance_configs.cfg']),
+]
+
+
+# Data files specific to the various Linux init systems.
+data_files_dict = {
+ 'systemd': [('/usr/lib/systemd/system', GetInitFiles('package/systemd'))],
+ 'sysvinit': [('/etc/init.d', GetInitFiles('package/sysvinit'))],
+ 'upstart': [('/etc/init', GetInitFiles('package/upstart'))],
+}
+
+
+if os.environ.get('CONFIG') not in data_files_dict.keys():
+ keys = ', '.join(data_files_dict.keys())
+ sys.exit('Expected "CONFIG" environment variable set to one of [%s].' % keys)
+
+
+setuptools.setup(
+ author='Google Compute Engine Team',
+ author_email='gc-team@google.com',
+ data_files=data_files + data_files_dict.get(os.environ['CONFIG']),
+ description='Google Compute Engine',
+ include_package_data=True,
+ install_requires=['boto'],
+ license='Apache Software License',
+ long_description='Google Compute Engine guest environment.',
+ name='google-compute-engine',
+ packages=setuptools.find_packages(),
+ scripts=glob.glob('scripts/*'),
+ url='https://github.com/GoogleCloudPlatform/compute-image-packages',
+ version='2.0.0',
+ # Entry points create scripts in /usr/bin that call a function.
+ entry_points={
+ 'console_scripts': [
+ 'google_accounts_daemon=google_compute_engine.accounts.accounts_daemon:main',
+ 'google_clock_skew_daemon=google_compute_engine.clock_skew.clock_skew_daemon:main',
+ 'google_ip_forwarding_daemon=google_compute_engine.ip_forwarding.ip_forwarding_daemon:main',
+ 'google_instance_setup=google_compute_engine.instance_setup.instance_setup:main',
+ 'google_metadata_script_runner=google_compute_engine.metadata_scripts.script_manager:main',
+ ],
+ },
+ classifiers=[
+ 'Development Status :: 5 - Production/Stable',
+ 'Environment :: No Input/Output (Daemon)',
+ 'Intended Audience :: Developers',
+ 'Intended Audience :: System Administrators',
+ 'License :: OSI Approved :: Apache Software License',
+ 'Operating System :: POSIX :: Linux',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 2.6',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3.2',
+ 'Programming Language :: Python :: 3.3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Topic :: Internet',
+ 'Topic :: Software Development :: Libraries :: Python Modules',
+ 'Topic :: System :: Installation/Setup',
+ 'Topic :: System :: Systems Administration',
+ ],
+)