cdist configuration management
Latest manual: https://www.cdi.st/manual/latest/
Home page: https://www.cdi.st
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.8 KiB
90 lines
2.8 KiB
from distutils.core import setup |
|
from distutils.errors import DistutilsError |
|
import os |
|
import re |
|
import subprocess |
|
|
|
|
|
# We have it only if it is a git cloned repo. |
|
build_helper = os.path.join('bin', 'build-helper') |
|
# Version file path. |
|
version_file = os.path.join('cdist', 'version.py') |
|
# If we have build-helper we could be a git repo. |
|
if os.path.exists(build_helper): |
|
# Try to generate version.py. |
|
rv = subprocess.run([build_helper, 'version', ]) |
|
if rv.returncode != 0: |
|
raise DistutilsError("Failed to generate {}".format(version_file)) |
|
else: |
|
# Otherwise, version.py should be present. |
|
if not os.path.exists(version_file): |
|
raise DistutilsError("Missing version file {}".format(version_file)) |
|
|
|
|
|
import cdist # noqa |
|
|
|
|
|
def data_finder(data_dir): |
|
entries = [] |
|
for name in os.listdir(data_dir): |
|
|
|
# Skip .gitignore files |
|
if name == ".gitignore": |
|
continue |
|
|
|
# Skip vim swp files |
|
swpfile = re.search(r'^\..*\.swp$', name) |
|
if swpfile: |
|
continue |
|
|
|
entry = os.path.join(data_dir, name) |
|
if os.path.isdir(entry): |
|
entries.extend(data_finder(entry)) |
|
else: |
|
entries.append(entry) |
|
|
|
return entries |
|
|
|
|
|
cur = os.getcwd() |
|
os.chdir("cdist") |
|
package_data = data_finder("conf") |
|
os.chdir(cur) |
|
|
|
|
|
setup( |
|
name="cdist", |
|
packages=["cdist", "cdist.core", "cdist.exec", "cdist.util", ], |
|
package_data={'cdist': package_data}, |
|
scripts=["scripts/cdist", "scripts/cdist-dump", "scripts/cdist-new-type"], |
|
version=cdist.version.VERSION, |
|
description="A Usable Configuration Management System", |
|
author="Nico Schottelius", |
|
author_email="nico-cdist-pypi@schottelius.org", |
|
url="https://www.cdi.st/", |
|
classifiers=[ |
|
"Development Status :: 6 - Mature", |
|
"Environment :: Console", |
|
"Intended Audience :: System Administrators", |
|
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", # noqa |
|
"Operating System :: MacOS :: MacOS X", |
|
"Operating System :: POSIX", |
|
"Operating System :: POSIX :: BSD", |
|
"Operating System :: POSIX :: Linux", |
|
"Operating System :: Unix", |
|
"Programming Language :: Python", |
|
"Programming Language :: Python :: 3", |
|
"Topic :: System :: Boot", |
|
"Topic :: System :: Installation/Setup", |
|
"Topic :: System :: Operating System", |
|
"Topic :: System :: Software Distribution", |
|
"Topic :: Utilities" |
|
], |
|
long_description=''' |
|
cdist is a usable configuration management system. |
|
It adheres to the KISS principle and is being used in small up to |
|
enterprise grade environments. |
|
cdist is an alternative to other configuration management systems like |
|
cfengine, bcfg2, chef and puppet. |
|
''' |
|
)
|
|
|