#!/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 )