bzr branch
http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
688.2.1
by Jelmer Vernooij
Split out olive into a separate directory. |
1 |
#!/usr/bin/python
|
2 |
||
3 |
"""GTK+ Frontends for various Bazaar commands."""
|
|
4 |
||
5 |
from distutils.core import setup |
|
6 |
from distutils.command.install_data import install_data |
|
7 |
from distutils.dep_util import newer |
|
8 |
from distutils.log import info |
|
9 |
import glob |
|
10 |
import os |
|
11 |
import sys |
|
12 |
||
13 |
||
14 |
class InstallData(install_data): |
|
15 |
||
16 |
def run(self): |
|
17 |
import subprocess |
|
18 |
self.data_files.extend(self._compile_po_files()) |
|
19 |
install_data.run(self) |
|
20 |
try: |
|
21 |
subprocess.check_call('gtk-update-icon-cache ' |
|
22 |
'-f -t /usr/share/icons/hicolor') |
|
23 |
except OSError: |
|
24 |
pass
|
|
25 |
||
26 |
def _compile_po_files(self): |
|
27 |
data_files = [] |
|
28 |
||
29 |
# Don't install language files on Win32
|
|
30 |
if sys.platform == 'win32': |
|
31 |
return data_files |
|
32 |
||
33 |
PO_DIR = 'po' |
|
34 |
for po in glob.glob(os.path.join(PO_DIR,'*.po')): |
|
35 |
lang = os.path.basename(po[:-3]) |
|
36 |
# It's necessary to compile in this directory (not in po_dir)
|
|
37 |
# because install_data can't rename file
|
|
38 |
mo = os.path.join('build', 'mo', lang, 'olive-gtk.mo') |
|
39 |
||
40 |
directory = os.path.dirname(mo) |
|
41 |
if not os.path.exists(directory): |
|
42 |
info('creating %s' % directory) |
|
43 |
os.makedirs(directory) |
|
44 |
if newer(po, mo): |
|
45 |
# True if mo doesn't exist
|
|
46 |
cmd = 'msgfmt -o %s %s' % (mo, po) |
|
47 |
info('compiling %s -> %s' % (po, mo)) |
|
48 |
if os.system(cmd) != 0: |
|
49 |
raise SystemExit('Error while running msgfmt') |
|
50 |
dest = os.path.dirname( |
|
51 |
os.path.join('share', 'locale', lang, |
|
52 |
'LC_MESSAGES', 'olive-gtk.mo')) |
|
53 |
data_files.append((dest, [mo])) |
|
54 |
return data_files |
|
55 |
||
56 |
||
57 |
if __name__ == '__main__': |
|
58 |
setup( |
|
59 |
name = "olive-gtk", |
|
60 |
version = "0.99.0", |
|
61 |
description = "GTK+ Explorer for Bazaar", |
|
62 |
license = "GNU GPL v2 or later", |
|
63 |
scripts = ['olive-gtk'], |
|
64 |
url = "http://bazaar-vcs.org/Olive", |
|
65 |
packages = [ |
|
66 |
"olive", |
|
67 |
],
|
|
68 |
data_files=[('share/olive', ['cmenu.ui',]), |
|
69 |
('share/applications', ['olive-gtk.desktop', ]), |
|
70 |
('share/pixmaps', ['icons/olive-gtk.png']), |
|
71 |
],
|
|
72 |
cmdclass={'install_data': InstallData} |
|
73 |
)
|