90 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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.
 | |
|     '''
 | |
| )
 |