mirror of
https://github.com/kakwa/ldapcherry
synced 2024-11-24 18:24:31 +01:00
fb6b0a5d31
cherrypy dropped support for python2 with 18.0.0, 17.X is the last version usable with python 2.
153 lines
4.1 KiB
Python
Executable File
153 lines
4.1 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# vim:set expandtab tabstop=4 shiftwidth=4:
|
|
|
|
import os
|
|
import re
|
|
import sys
|
|
from distutils.core import setup, run_setup
|
|
|
|
# some install path variables
|
|
sysconfdir = os.getenv("SYSCONFDIR", "/etc")
|
|
datarootdir = os.getenv("DATAROOTDIR", os.path.join(sys.prefix, 'share'))
|
|
|
|
# path to install data
|
|
data_dir = os.path.join(datarootdir, 'ldapcherry')
|
|
# path to install configuration
|
|
config_dir = os.path.join(sysconfdir, 'ldapcherry')
|
|
small_description = 'A simple web application to manage Ldap entries'
|
|
|
|
sys.path.append('ldapcherry/')
|
|
from version import version
|
|
|
|
# change requirements according to python version
|
|
if sys.version_info[0] == 2:
|
|
install_requires = [
|
|
'CherryPy >= 3.0.0,< 18.0.0',
|
|
'python-ldap',
|
|
'PyYAML',
|
|
'Mako'
|
|
],
|
|
elif sys.version_info[0] == 3:
|
|
install_requires = [
|
|
'CherryPy >= 3.0.0',
|
|
'python-ldap',
|
|
'PyYAML',
|
|
'Mako'
|
|
],
|
|
else:
|
|
print('unsupported version')
|
|
exit(1)
|
|
|
|
try:
|
|
f = open(os.path.join(os.path.dirname(__file__), 'README.rst'))
|
|
description = f.read()
|
|
f.close()
|
|
except IOError:
|
|
description = small_description
|
|
|
|
try:
|
|
license = open('LICENSE').read()
|
|
except IOError:
|
|
license = 'MIT'
|
|
|
|
try:
|
|
from setuptools import setup
|
|
from setuptools.command.test import test as TestCommand
|
|
|
|
class PyTest(TestCommand):
|
|
def finalize_options(self):
|
|
TestCommand.finalize_options(self)
|
|
self.test_args = []
|
|
self.test_suite = True
|
|
|
|
def run_tests(self):
|
|
# import here, cause outside the eggs aren't loaded
|
|
import pytest
|
|
errno = pytest.main(self.test_args)
|
|
sys.exit(errno)
|
|
except ImportError:
|
|
from distutils.core import setup
|
|
|
|
def PyTest(x):
|
|
x
|
|
|
|
|
|
def as_option_root():
|
|
for arg in sys.argv:
|
|
if re.match(r'--root.*', arg):
|
|
return True
|
|
return False
|
|
|
|
|
|
# just a small function to easily install a complete directory
|
|
def get_list_files(basedir, targetdir):
|
|
return_list = []
|
|
for root, dirs, files in os.walk(basedir):
|
|
subpath = re.sub(r'' + basedir + '[\/]*', '', root)
|
|
files_list = []
|
|
for f in files:
|
|
files_list.append(os.path.join(root, f))
|
|
return_list.append((os.path.join(targetdir, subpath), files_list))
|
|
return return_list
|
|
|
|
# add static files and templates in the list of thing to deploy
|
|
resources_files = get_list_files(
|
|
'resources',
|
|
data_dir,
|
|
)
|
|
|
|
# add the configuration files if they don't exist
|
|
if as_option_root() or not os.path.exists(
|
|
config_dir):
|
|
resources_files.append(
|
|
(
|
|
config_dir,
|
|
[
|
|
'conf/ldapcherry.ini',
|
|
'conf/attributes.yml',
|
|
'conf/roles.yml'
|
|
]
|
|
)
|
|
)
|
|
|
|
|
|
setup(
|
|
name='ldapcherry',
|
|
zip_safe=False,
|
|
version=version,
|
|
author='Pierre-Francois Carpentier',
|
|
author_email='carpentier.pf@gmail.com',
|
|
packages=[
|
|
'ldapcherry',
|
|
'ldapcherry.backend',
|
|
'ldapcherry.ppolicy'
|
|
],
|
|
data_files=resources_files,
|
|
entry_points = {
|
|
'console_scripts': ['ldapcherryd = ldapcherry.cli:main']
|
|
},
|
|
url='https://github.com/kakwa/ldapcherry',
|
|
license=license,
|
|
description=small_description,
|
|
long_description=description,
|
|
install_requires=install_requires,
|
|
tests_require=['pytest', 'pep8'],
|
|
cmdclass={'test': PyTest},
|
|
classifiers=[
|
|
'Development Status :: 3 - Alpha',
|
|
'Environment :: Web Environment',
|
|
'Framework :: CherryPy',
|
|
'Intended Audience :: System Administrators',
|
|
'License :: OSI Approved :: MIT License',
|
|
'Natural Language :: English',
|
|
'Operating System :: POSIX',
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Python :: 2.7',
|
|
"Topic :: System :: Systems Administration"
|
|
" :: Authentication/Directory :: LDAP",
|
|
"Topic :: System :: Systems Administration"
|
|
" :: Authentication/Directory",
|
|
],
|
|
)
|