From 1b98edd21a86ce78bae6c499c05cd05d90828d2b Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 27 Aug 2015 11:06:35 +0200 Subject: [PATCH] setup.py: add target to build locales --- setup.py | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 2ac1eee..af1bb9b 100755 --- a/setup.py +++ b/setup.py @@ -1,8 +1,52 @@ #!/usr/bin/python import subprocess -from setuptools import setup, find_packages +import sys import os +from setuptools import setup, find_packages +from setuptools.command.install_lib import install_lib as _install_lib +from distutils.command.build import build as _build +from distutils.command.sdist import sdist +from distutils.cmd import Command + + +class compile_translations(Command): + description = 'compile message catalogs to MO files via django compilemessages' + user_options = [] + + def initialize_options(self): + pass + + def finalize_options(self): + pass + + def run(self): + try: + from django.core.management import call_command + for dir in ('src/authentic2', 'src/authentic2_idp_openid', + 'src/authentic2_idp_cas', 'src/django_rbac'): + for path, dirs, files in os.walk(dir): + if 'locale' not in dirs: + continue + curdir = os.getcwd() + os.chdir(os.path.realpath(path)) + call_command('compilemessages') + os.chdir(curdir) + except ImportError: + print + sys.stderr.write('!!! Please install Django >= 1.4 to build translations') + print + print + + +class build(_build): + sub_commands = [('compile_translations', None)] + _build.sub_commands + +class install_lib(_install_lib): + def run(self): + self.run_command('compile_translations') + _install_lib.run(self) + def get_version(): '''Use the VERSION, if absent generates a version with git describe, if not tag exists, take 0.0.0- and add the length of the commit log. @@ -22,6 +66,21 @@ def get_version(): ['git', 'rev-list', 'HEAD']).splitlines()) return '0.0.0' +class eo_sdist(sdist): + + def run(self): + print "creating VERSION file" + if os.path.exists('VERSION'): + os.remove('VERSION') + version = get_version() + version_file = open('VERSION', 'w') + version_file.write(version) + version_file.close() + sdist.run(self) + print "removing VERSION file" + if os.path.exists('VERSION'): + os.remove('VERSION') + README = file(os.path.join( os.path.dirname(__file__), 'README')).read()