53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
from distutils.core import setup
|
|
from os.path import dirname, abspath, join, normpath, isdir, basename
|
|
from os import listdir
|
|
|
|
import os
|
|
import subprocess
|
|
|
|
def fetch_version():
|
|
"""Get version from version.in or latest git tag"""
|
|
version_file='version.in'
|
|
version = "1.0"
|
|
git_last_tag_cmd = ['git', 'describe', '--tags', '--abbrev=0']
|
|
|
|
try:
|
|
if os.path.isfile(version_file):
|
|
version=file(version_file).readline().strip()
|
|
elif os.path.isdir('.git'):
|
|
popen = subprocess.Popen(git_last_tag_cmd, stdout=subprocess.PIPE)
|
|
out, ret = popen.communicate()
|
|
for line in out.split('\n'):
|
|
if line:
|
|
version = line.lstrip('release/')
|
|
break
|
|
except OSError:
|
|
pass # Failing is fine, we just can't print the version then
|
|
|
|
return version
|
|
|
|
def return_storages():
|
|
"returns all the storage plugins that are living in tiramisu/storage"
|
|
here = dirname(abspath(__file__))
|
|
storages_path = normpath(join(here, 'tiramisu', 'storage'))
|
|
dir_content = [ content for content in listdir(storages_path) \
|
|
if not content =='__pycache__']
|
|
storages = filter(isdir, [join(storages_path, content) \
|
|
for content in dir_content])
|
|
storage_list = [basename(storage) for storage in storages]
|
|
return storage_list
|
|
|
|
packages = ['tiramisu', 'tiramisu.storage']
|
|
packages.extend(return_storages())
|
|
|
|
setup(
|
|
author='cadoles team',
|
|
author_email='contact@cadoles.com',
|
|
name='tiramisu',
|
|
version=fetch_version(),
|
|
description='configuration management tool',
|
|
url='http://labs.libre-entreprise.org/projects/tiramisu',
|
|
packages=packages
|
|
)
|