summaryrefslogtreecommitdiff
path: root/setup.py
blob: d7a3e7ff6d3ea10b103fc80a3b9e304331dfe546 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/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)))


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_dict.get(os.environ['CONFIG']),
    description='Google Compute Engine',
    include_package_data=True,
    install_requires=['boto>=2.25.0'],
    license='Apache Software License',
    long_description='Google Compute Engine guest environment.',
    name='google_compute_engine_%s' % os.environ['CONFIG'],
    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=accounts.accounts_daemon:main',
            'google_clock_skew_daemon=clock_skew.clock_skew_daemon:main',
            'google_ip_forwarding_daemon=ip_forwarding.ip_forwarding_daemon:main',
            'google_instance_setup=instance_setup.instance_setup:main',
            'google_metadata_script_runner=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',
    ],
)