summaryrefslogtreecommitdiffstats
path: root/setup.py
blob: 712474f9805b9a552b88e31ffc08822fb1254dc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env python

import sys, subprocess, os
from distutils.core import setup
from distutils.command.build import build as _build

prefix="/usr"
pyscripts = ["fusion-desktop-effects"]
scripts = ["compiz-fusion-gtk"]
desktopfiles = ['compiz-fusion-gtk.desktop','fusion-desktop-effects.desktop']
podir = "po/"

mofiles = []

if os.path.isdir (podir):
    mopath = "build/locale/%s/fusion-desktop-effects.mo"
    destpath = "share/locale/%s/LC_MESSAGES"
    for name in os.listdir (podir):
        if name[-2:] == "po":
            name = name[:-3]
            mofiles.append ((destpath % name, [mopath % name]))


def simple_getopt(l,var):
    idx = 0
    for i in l:
        v = "%s=" % var
        if v in i:
           return (var,i.replace(v,''),idx)
        if i == var:
           return (var,l[idx+1],idx)
        else:
           idx += 1
    return (None,None,idx)

if len(sys.argv) > 2:
   o,v,i = simple_getopt(sys.argv,'--prefix')
   if v:
      prefix = v
      if sys.argv[1] == "build":
         if "%s=%s" % (o,v) in sys.argv:
            sys.argv.remove("%s=%s" % (o,v))
         else:
            sys.argv.pop(i)
            sys.argv.pop(i)

datadir="%s/share/fusion-desktop-effects/" % prefix



class build(_build):
   def run(self):
       # build python scripts
       for s in pyscripts:
           f = open("%s.in" % s).read().replace("@prefix@",prefix).replace("@datadir@",datadir)
           fo = open(s,'w')
           fo.write(f)
           fo.close()

       # build .desktop files
       for d in desktopfiles:
           cmd = "intltool-merge -d -u po/ %s.in %s" % (d,d)
           p = subprocess.Popen(cmd.split(' '))
           p.wait()

       podir = os.path.join (os.path.realpath ("."), "po")
       if os.path.isdir (podir):
           buildcmd = "msgfmt -o build/locale/%s/fusion-desktop-effects.mo po/%s.po"
           mopath = "build/locale/%s/fusion-desktop-effects.mo"
           destpath = "share/locale/%s/LC_MESSAGES"
           for name in os.listdir (podir):
               if name[-2:] == "po":
                   name = name[:-3]
                   if not os.path.isdir ("build/locale/" + name):
                          os.makedirs ("build/locale/" + name)
                   subprocess.Popen(buildcmd % (name, name),shell=True)
       _build.run(self)



setup (
        name             = "fusion-desktop-effects",
        version          = "0.0.1",
        description      = "Compiz Fusion Desktop Effects",
        author           = "Mohd Izhar Firdaus Ismail",
        author_email     = "izhar@fedoraproject.org",
        url              = "http://blog.kagesenshi.org/",
        license          = "GPL",
        data_files       = [
                            (datadir,['images/cf_logo.png']),
                            ('%s/share/applications' % prefix, desktopfiles)
                           ] + pofiles,
        packages         = [],
        scripts          = scripts + pyscripts,
        cmdclass         = {"build":build},
     )