1 | # -*- coding: utf-8 -*- |
---|
2 | # |
---|
3 | # Copyright (c) 2008, Stephen Hansen |
---|
4 | # Copyright (c) 2009, Robert Corsaro |
---|
5 | # Copyright (c) 2010-2012 Steffen Hoffmann |
---|
6 | # |
---|
7 | # This software is licensed as described in the file COPYING, which |
---|
8 | # you should have received as part of this distribution. |
---|
9 | # |
---|
10 | |
---|
11 | from setuptools import find_packages, setup |
---|
12 | |
---|
13 | extra = {} |
---|
14 | |
---|
15 | try: |
---|
16 | from trac.util.dist import get_l10n_cmdclass |
---|
17 | cmdclass = get_l10n_cmdclass() |
---|
18 | if cmdclass: |
---|
19 | extra['cmdclass'] = cmdclass |
---|
20 | extractors = [ |
---|
21 | ('**.py', 'python', None), |
---|
22 | ('**/templates/**.html', 'genshi', None), |
---|
23 | ('**/templates/**.txt', 'genshi', { |
---|
24 | 'template_class': 'genshi.template:TextTemplate' |
---|
25 | }), |
---|
26 | ] |
---|
27 | extra['message_extractors'] = {'announcer': extractors} |
---|
28 | # i18n is implemented to be optional here. |
---|
29 | except ImportError: |
---|
30 | pass |
---|
31 | |
---|
32 | |
---|
33 | setup( |
---|
34 | name = 'TracAnnouncer', |
---|
35 | version = '1.0', |
---|
36 | author = 'Robert Corsaro', |
---|
37 | author_email = 'rcorsaro@gmail.com', |
---|
38 | description = 'Customizable notification system for Trac', |
---|
39 | license = """ |
---|
40 | Copyright (c) 2008, Stephen Hansen. |
---|
41 | Copyright (c) 2009, Robert Corsaro. |
---|
42 | All rights reserved. Released under the 3-clause BSD license. |
---|
43 | """, |
---|
44 | url = 'http://www.trac-hacks.org/wiki/AnnouncerPlugin', |
---|
45 | packages = find_packages(exclude=['*.tests*']), |
---|
46 | package_data = { |
---|
47 | 'announcer': [ |
---|
48 | 'htdocs/*.*', |
---|
49 | 'htdocs/css/*.*', |
---|
50 | 'locale/*/LC_MESSAGES/*.mo', |
---|
51 | 'locale/.placeholder', |
---|
52 | 'templates/*.html', |
---|
53 | 'templates/*.txt' |
---|
54 | ] |
---|
55 | }, |
---|
56 | install_requires = ['Genshi >= 0.5', 'Trac >= 0.11'], |
---|
57 | extras_require={ |
---|
58 | 'Babel': 'Babel>= 0.9.5', |
---|
59 | 'Trac': 'Trac >= 0.12', |
---|
60 | 'acct_mgr': 'TracAccountManager', |
---|
61 | 'bitten': 'Bitten', |
---|
62 | 'fullblog': 'TracFullBlogPlugin', |
---|
63 | 'xmpp': 'xmpppy', |
---|
64 | }, |
---|
65 | entry_points = { |
---|
66 | 'trac.plugins': [ |
---|
67 | 'announcer.api = announcer.api', |
---|
68 | 'announcer.distributors.mail = announcer.distributors.mail', |
---|
69 | 'announcer.distributors.xmppd = announcer.distributors.xmppd[xmpp]', |
---|
70 | 'announcer.email_decorators = announcer.email_decorators', |
---|
71 | 'announcer.filters = announcer.filters', |
---|
72 | 'announcer.formatters = announcer.formatters', |
---|
73 | 'announcer.model = announcer.model', |
---|
74 | 'announcer.pref = announcer.pref', |
---|
75 | 'announcer.producers = announcer.producers', |
---|
76 | 'announcer.resolvers = announcer.resolvers', |
---|
77 | 'announcer.subscribers = announcer.subscribers', |
---|
78 | 'announcer.util.mail = announcer.util.mail', |
---|
79 | 'announcer.opt.acct_mgr.announce = announcer.opt.acct_mgr.announce[acct_mgr]', |
---|
80 | 'announcer.opt.bitten.announce = announcer.opt.bitten.announce[bitten]', |
---|
81 | 'announcer.opt.fullblog.announce = announcer.opt.fullblog.announce[fullblog]', |
---|
82 | 'announcer.opt.subscribers = announcer.opt.subscribers', |
---|
83 | ] |
---|
84 | }, |
---|
85 | test_suite = 'announcer.tests.test_suite', |
---|
86 | tests_require = [], |
---|
87 | **extra |
---|
88 | ) |
---|