You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.1 KiB
97 lines
3.1 KiB
#!/usr/bin/env python2 |
|
# -*- coding: utf-8 -*- |
|
|
|
# setup.py --- Setup script for calculate-install |
|
|
|
# Copyright 2010 Calculate Ltd. http://www.calculate-linux.org |
|
# |
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
|
# you may not use this file except in compliance with the License. |
|
# You may obtain a copy of the License at |
|
# |
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
# |
|
# Unless required by applicable law or agreed to in writing, software |
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
# See the License for the specific language governing permissions and |
|
# limitations under the License. |
|
|
|
import os |
|
from os import path |
|
import stat |
|
import distutils |
|
import glob |
|
import sys |
|
from distutils.core import setup, Extension |
|
import distutils.command.build |
|
import distutils.command.install |
|
import distutils.command.install_egg_info |
|
|
|
locales = ("ru","bg","fr","uk","lt") |
|
msg_params = "--check-format --check-domain -o" |
|
|
|
def cout(string): |
|
sys.stdout.write(string) |
|
sys.stdout.flush() |
|
|
|
class build_po( distutils.core.Command ) : |
|
|
|
description = "build translation files" |
|
user_options = [] |
|
|
|
def initialize_options( self ) : |
|
pass |
|
def finalize_options( self ) : |
|
pass |
|
|
|
def run( self ) : |
|
#self.mkpath("build") |
|
#build.run( self ) |
|
for locale in locales: |
|
localepath = path.join("build",locale,"LC_MESSAGES") |
|
self.mkpath(localepath) |
|
self.mkpath(locale) |
|
for po in glob.glob("%s/*.po"%locale) : |
|
if "packages.po" in po or "new.po" in po: |
|
continue |
|
addon = "%s/packages.po"%locale |
|
if "cl_update" in po and path.exists(addon): |
|
cmd = "msgfmt %s %s/%s %s %s" % \ |
|
(msg_params,localepath, |
|
path.basename(po)[:-2]+'mo',po, addon) |
|
else: |
|
cmd = "msgfmt %s %s/%s %s" % \ |
|
(msg_params,localepath, |
|
path.basename(po)[:-2]+'mo',po) |
|
cout( cmd + "\n" ) |
|
os.system(cmd) |
|
|
|
class empty_egg_info( distutils.command.install_egg_info.install_egg_info ): |
|
def run(self): |
|
pass |
|
|
|
class build( distutils.command.build.build ) : |
|
def run( self ) : |
|
distutils.command.build.build.run( self ) |
|
|
|
def has_po( self ) : |
|
return any(len(glob.glob("%s/*.po"%x))>0 for x in ("ru","fr")) |
|
sub_commands = distutils.command.build.build.sub_commands + [ |
|
('build_po',has_po), |
|
] |
|
|
|
setup( |
|
name = "calculate-i18n", |
|
version = "3.5.0", |
|
description = "Calculate Linux internationalization", |
|
author = "Calculate Ltd.", |
|
author_email = "support@calculate.ru", |
|
url = "http://calculate-linux.org", |
|
license = "http://www.apache.org/licenses/LICENSE-2.0", |
|
data_files = [ |
|
(path.join(locale,"LC_MESSAGES"), |
|
glob.glob(path.join("build",locale,"LC_MESSAGES/*.mo"))) |
|
for locale in locales ], |
|
cmdclass = {'build':build,'build_po':build_po,'install_egg_info':empty_egg_info} |
|
)
|
|
|