~jconti/recent-notifications/trunk

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
#!/usr/bin/env python

import distutils
import distutils.sysconfig

from distutils.command.build import build
from distutils.core import setup
from string import Template

from recent_notifications.Globals import VERSION

class build_servers(distutils.cmd.Command):
  description = "build bonobo server files"

  user_options = [
      ("server-files=", None, "server.in files that should be built")
  ]

  def initialize_options(self):
    self.server_files = "[]"

  def finalize_options(self):
    pass

  def run(self):
    try:
      file_set = eval(self.server_files)
    except:
      raise Exception("Invalid server-files option: " + self.server_files)

    data_files = self.distribution.data_files

    for (target, files) in file_set:
      files_built = []
      for file in files:
        if file.endswith("server.in"):
          output_file = file[:-3]
        else:
          raise Exception("Invalid server file: " + file)

        print "building server file", output_file

        with open(file, "r") as f:
          server_data = f.read()

        with open(output_file, "w") as f:
          f.write(Template(server_data).substitute(PREFIX=distutils.sysconfig.PREFIX))

        files_built.append(output_file)
      data_files.append((target, files_built))

build.sub_commands.append(("build_servers", None))

setup(
    name="recent-notifications",
    version=VERSION,
    author="Jason Conti",
    author_email="jason.conti@gmail.com",
    url="http://www.example.com/recent-notifcations",
    license="GNU General Public License (GPL)",
    packages=["recent_notifications"],
    data_files=[
        ("lib/recent-notifications", ["recent-notifications"]),
        ("share/icons/hicolor/scalable/apps", [
            "icons/notification-critical.svg",
            "icons/notification-low.svg",
            "icons/notification-normal.svg",
            "icons/notification-read.svg",
            "icons/notification-unread.svg",
            "icons/recent-notifications.svg"])
    ],
    cmdclass={
      "build_servers": build_servers
    }
)