/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to setup.py

Add options to viz treeview to not show the line graph, and to only show the main line.
Set the revision browser to use these options.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/usr/bin/python
2
2
"""GTK+ Frontends for various Bazaar commands."""
3
3
 
 
4
from distutils.core import setup, Command
 
5
from distutils.command.install_data import install_data
 
6
from distutils.dep_util import newer
 
7
from distutils.log import info
 
8
import glob
4
9
import os
5
10
import sys
6
11
 
7
 
from info import bzr_plugin_version
8
 
 
9
 
from distutils.core import setup, Command
10
 
from distutils.command.install_data import install_data
11
 
from distutils.command.build import build
12
 
from distutils.command.sdist import sdist
13
 
try:
14
 
    from DistUtilsExtra.command import build_i18n
15
 
except ImportError:
16
 
    # Python distutils extra is not available.
17
 
    class cmd_build_i18n(build):
18
 
        user_options = []
19
 
 
20
 
        def initialize_options(self):
21
 
            self.domain = None
22
 
            self.desktop_files = None
23
 
 
24
 
        def finalize_options(self):
25
 
            pass
26
 
 
27
 
        def run(self):
28
 
            print >> sys.stderr, (
29
 
                "For internationalization support you'll need to install "
30
 
                "https://launchpad.net/python-distutils-extra")
31
 
else:
32
 
    # Use build_i18n from DistUtilsExtra
33
 
    cmd_build_i18n = build_i18n.build_i18n
34
 
 
35
 
 
36
12
class Check(Command):
37
13
    description = "Run unit tests"
38
14
 
39
 
    user_options = [
40
 
        ('module=', 'm', 'The test module to run'),
41
 
        ]
 
15
    user_options = []
42
16
 
43
17
    def initialize_options(self):
44
 
        self.module = None
 
18
        pass
45
19
 
46
20
    def finalize_options(self):
47
21
        pass
51
25
 
52
26
    def run(self):
53
27
        from bzrlib.tests import TestLoader, TestSuite, TextTestRunner
54
 
        from bzrlib.plugin import PluginImporter
55
 
        PluginImporter.specific_paths["bzrlib.plugins.gtk"] = os.path.dirname(
56
 
            __file__)
57
 
        from bzrlib.plugins.gtk.tests import load_tests
 
28
        import __init__ as bzrgtk
 
29
        runner = TextTestRunner()
 
30
        loader = TestLoader()
58
31
        suite = TestSuite()
59
 
        loader = TestLoader()
60
 
        load_tests(suite, self.module, loader)
61
 
        runner = TextTestRunner()
 
32
        suite.addTest(bzrgtk.test_suite())
62
33
        result = runner.run(suite)
63
34
        return result.wasSuccessful()
64
35
 
65
 
 
66
 
class CreateCredits(Command):
67
 
    description = "Create credits file"
68
 
 
69
 
    user_options = [("url=", None, "URL of branch")]
70
 
 
71
 
    def initialize_options(self):
72
 
        self.url = "."
73
 
 
74
 
    def finalize_options(self):
75
 
        pass
76
 
 
77
 
    def get_command_name(self):
78
 
        return 'build_credits'
79
 
 
80
 
    def run(self):
81
 
        from bzrlib.plugin import load_plugins
82
 
        load_plugins()
83
 
        from bzrlib.branch import Branch
84
 
        from bzrlib.plugins.stats.cmds import find_credits
85
 
 
86
 
        import pickle
87
 
 
88
 
        branch = Branch.open(self.url)
89
 
        credits = find_credits(branch.repository, branch.last_revision())
90
 
 
91
 
        pickle.dump(credits, file("credits.pickle", 'w'))
92
 
        return True
93
 
 
94
 
 
95
 
def is_versioned(cmd):
96
 
    from bzrlib.errors import NotBranchError
97
 
    try:
98
 
        from bzrlib.branch import Branch
99
 
        Branch.open(".")
100
 
        return True
101
 
    except NotBranchError:
102
 
        return False
103
 
 
104
 
 
105
 
class BuildData(build):
106
 
    sub_commands = build.sub_commands[:]
107
 
    sub_commands.append(('build_credits', is_versioned))
108
 
 
109
 
 
110
 
class SourceDist(sdist):
111
 
    sub_commands = sdist.sub_commands[:]
112
 
    sub_commands.append(('build_credits', is_versioned))
113
 
 
114
 
 
115
36
class InstallData(install_data):
116
 
 
117
37
    def run(self):
118
 
        import subprocess
119
 
        self.data_files.extend(self._nautilus_plugin())
 
38
        self.data_files.extend(self._compile_po_files())
 
39
        # Disable for now - performance issues
 
40
        #self.data_files.extend(self._nautilus_plugin())
120
41
        install_data.run(self)
121
 
 
122
 
        try:
123
 
            subprocess.check_call('gtk-update-icon-cache '
124
 
                                  '-f -t /usr/share/icons/hicolor')
125
 
        except OSError:
126
 
            pass
127
 
 
 
42
    
 
43
    def _compile_po_files(self):
 
44
        data_files = []
 
45
        
 
46
        # Don't install language files on Win32
 
47
        if sys.platform == 'win32':
 
48
            return data_files
 
49
        
 
50
        PO_DIR = 'po'
 
51
        for po in glob.glob(os.path.join(PO_DIR,'*.po')):
 
52
            lang = os.path.basename(po[:-3])
 
53
            # It's necessary to compile in this directory (not in po_dir)
 
54
            # because install_data can't rename file
 
55
            mo = os.path.join('build', 'mo', lang, 'olive-gtk.mo')
 
56
            
 
57
            directory = os.path.dirname(mo)
 
58
            if not os.path.exists(directory):
 
59
                info('creating %s' % directory)
 
60
                os.makedirs(directory)
 
61
            
 
62
            if newer(po, mo):
 
63
                # True if mo doesn't exist
 
64
                cmd = 'msgfmt -o %s %s' % (mo, po)
 
65
                info('compiling %s -> %s' % (po, mo))
 
66
                if os.system(cmd) != 0:
 
67
                    raise SystemExit('Error while running msgfmt')
 
68
                
 
69
                dest = os.path.dirname(os.path.join('share', 'locale', lang, 'LC_MESSAGES', 'olive-gtk.mo'))
 
70
                data_files.append((dest, [mo]))
 
71
        
 
72
        return data_files
 
73
    
128
74
    def _nautilus_plugin(self):
129
75
        files = []
130
76
        if sys.platform[:5] == 'linux':
131
 
            cmd = os.popen('pkg-config --variable=pythondir nautilus-python',
132
 
                           'r')
133
 
            res = cmd.readline().strip()
 
77
            cmd = os.popen('pkg-config --variable=pythondir nautilus-python', 'r')
 
78
            res = cmd.readline()
134
79
            ret = cmd.close()
 
80
            
135
81
            if ret is None:
136
82
                dest = res[5:]
137
83
                files.append((dest, ['nautilus-bzr.py']))
 
84
        
138
85
        return files
139
86
 
140
87
 
141
 
if __name__ == '__main__':
142
 
    version = bzr_plugin_version[:3]
143
 
    version_string = ".".join([str(x) for x in version])
144
 
    setup(
145
 
        name="bzr-gtk",
146
 
        version=version_string,
147
 
        maintainer="Jelmer Vernooij",
148
 
        maintainer_email="jelmer@samba.org",
149
 
        description="GTK+ Frontends for various Bazaar commands",
150
 
        license="GNU GPL v2 or later",
151
 
        scripts=['bzr-handle-patch'],
152
 
        url="http://bazaar-vcs.org/BzrGtk",
153
 
        package_dir={
154
 
            "bzrlib.plugins.gtk": ".",
155
 
            "bzrlib.plugins.gtk.viz": "viz",
156
 
            "bzrlib.plugins.gtk.annotate": "annotate",
157
 
            "bzrlib.plugins.gtk.tests": "tests",
158
 
            "bzrlib.plugins.gtk.branchview": "branchview",
159
 
            "bzrlib.plugins.gtk.preferences": "preferences",
160
 
            },
161
 
        packages=[
162
 
            "bzrlib.plugins.gtk",
163
 
            "bzrlib.plugins.gtk.viz",
164
 
            "bzrlib.plugins.gtk.annotate",
165
 
            "bzrlib.plugins.gtk.tests",
166
 
            "bzrlib.plugins.gtk.branchview",
167
 
            "bzrlib.plugins.gtk.preferences",
 
88
setup(
 
89
    name = "bzr-gtk",
 
90
    version = "0.94.0",
 
91
    maintainer = "Jelmer Vernooij",
 
92
    maintainer_email = "jelmer@samba.org",
 
93
    description = "GTK+ Frontends for various Bazaar commands",
 
94
    license = "GNU GPL v2",
 
95
    scripts=['olive-gtk'],
 
96
    package_dir = {
 
97
        "bzrlib.plugins.gtk": ".",
 
98
        "bzrlib.plugins.gtk.viz": "viz", 
 
99
        "bzrlib.plugins.gtk.annotate": "annotate",
 
100
        "bzrlib.plugins.gtk.olive": "olive",
 
101
        "bzrlib.plugins.gtk.tests": "tests",
 
102
        "bzrlib.plugins.gtk.branchview": "branchview",
 
103
        },
 
104
    packages = [
 
105
        "olive",
 
106
        "bzrlib.plugins.gtk",
 
107
        "bzrlib.plugins.gtk.viz",
 
108
        "bzrlib.plugins.gtk.annotate",
 
109
        "bzrlib.plugins.gtk.olive",
 
110
        "bzrlib.plugins.gtk.tests",
 
111
        "bzrlib.plugins.gtk.branchview",
168
112
        ],
169
 
        data_files=[('share/bzr-gtk', ['credits.pickle']),
170
 
                    ('share/bzr-gtk/icons', ['icons/commit.png',
171
 
                                             'icons/commit16.png',
172
 
                                             'icons/diff.png',
173
 
                                             'icons/diff16.png',
174
 
                                             'icons/log.png',
175
 
                                             'icons/log16.png',
176
 
                                             'icons/pull.png',
177
 
                                             'icons/pull16.png',
178
 
                                             'icons/push.png',
179
 
                                             'icons/push16.png',
180
 
                                             'icons/refresh.png',
181
 
                                             'icons/sign-bad.png',
182
 
                                             'icons/sign-ok.png',
183
 
                                             'icons/sign.png',
184
 
                                             'icons/sign-unknown.png',
185
 
                                             'icons/tag-16.png',
186
 
                                             'icons/bug.png',
187
 
                                             'icons/bzr-icon-64.png']),
188
 
                    # In case Python distutils extra is not available,
189
 
                    # install the .desktop files
190
 
                    ('share/applications', ['bazaar-properties.desktop',
191
 
                                            'bzr-handle-patch.desktop']),
192
 
                    ('share/application-registry', ['bzr-gtk.applications']),
193
 
                    ('share/pixmaps', ['icons/bzr-icon-64.png']),
194
 
                    ('share/icons/hicolor/scalable/apps',
195
 
                        ['icons/bzr-panel.svg']),
196
 
                    ('share/icons/hicolor/scalable/emblems',
197
 
                     ['icons/emblem-bzr-added.svg',
198
 
                      'icons/emblem-bzr-conflict.svg',
199
 
                      'icons/emblem-bzr-controlled.svg',
200
 
                      'icons/emblem-bzr-modified.svg',
201
 
                      'icons/emblem-bzr-removed.svg',
202
 
                      'icons/emblem-bzr-ignored.svg'])
203
 
                    ],
204
 
        cmdclass={'install_data': InstallData,
205
 
                  'build_credits': CreateCredits,
206
 
                  'build': BuildData,
207
 
                  'build_i18n': cmd_build_i18n,
208
 
                  'sdist': SourceDist,
209
 
                  'check': Check}
210
 
        )
 
113
    data_files=[('share/olive', ['olive.glade',
 
114
                                 'cmenu.ui',
 
115
                                ]),
 
116
                ('share/olive/icons', ['icons/commit.png',
 
117
                                 'icons/commit16.png',
 
118
                                 'icons/diff.png',
 
119
                                 'icons/diff16.png',
 
120
                                 'icons/log.png',
 
121
                                 'icons/log16.png',
 
122
                                 'icons/pull.png',
 
123
                                 'icons/pull16.png',
 
124
                                 'icons/push.png',
 
125
                                 'icons/push16.png',
 
126
                                 'icons/refresh.png',
 
127
                                 'icons/oliveicon2.png']),
 
128
                ('share/applications', ['olive-gtk.desktop',
 
129
                                        'bazaar-properties.desktop',
 
130
                                        'bzr-notify.desktop']),
 
131
                ('share/pixmaps', ['icons/olive-gtk.png'])
 
132
               ],
 
133
    cmdclass={'install_data': InstallData,
 
134
              'check': Check}
 
135
)