~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/crash.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-01-21 22:45:45 UTC
  • mfrom: (5628.1.1 locale-failure)
  • Revision ID: pqm@pqm.ubuntu.com-20110121224545-j7ie4ubrplzw0tvv
(jelmer) Fix test_locale test on systems where the default locale is not C.
 (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2009-2011 Canonical Ltd
 
1
# Copyright (C) 2009, 2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
84
84
    """Report a bug by just printing a message to the user."""
85
85
    trace.print_exception(exc_info, err_file)
86
86
    err_file.write('\n')
87
 
    import textwrap
88
 
    def print_wrapped(l):
89
 
        err_file.write(textwrap.fill(l,
90
 
            width=78, subsequent_indent='    ') + '\n')
91
 
    print_wrapped('bzr %s on python %s (%s)\n' % \
92
 
        (bzrlib.__version__,
93
 
        bzrlib._format_version_tuple(sys.version_info),
94
 
        platform.platform(aliased=1)))
95
 
    print_wrapped('arguments: %r\n' % sys.argv)
96
 
    print_wrapped(textwrap.fill(
97
 
        'plugins: ' + plugin.format_concise_plugin_list(),
98
 
        width=78,
99
 
        subsequent_indent='    ',
100
 
        ) + '\n')
101
 
    print_wrapped(
 
87
    err_file.write('bzr %s on python %s (%s)\n' % \
 
88
                       (bzrlib.__version__,
 
89
                        bzrlib._format_version_tuple(sys.version_info),
 
90
                        platform.platform(aliased=1)))
 
91
    err_file.write('arguments: %r\n' % sys.argv)
 
92
    err_file.write(
102
93
        'encoding: %r, fsenc: %r, lang: %r\n' % (
103
94
            osutils.get_user_encoding(), sys.getfilesystemencoding(),
104
95
            os.environ.get('LANG')))
105
 
    # We used to show all the plugins here, but it's too verbose.
 
96
    err_file.write("plugins:\n")
 
97
    err_file.write(_format_plugin_list())
106
98
    err_file.write(
107
 
        "\n"
 
99
        "\n\n"
108
100
        "*** Bazaar has encountered an internal error.  This probably indicates a\n"
109
101
        "    bug in Bazaar.  You can help us fix it by filing a bug report at\n"
110
102
        "        https://bugs.launchpad.net/bzr/+filebug\n"
120
112
    # this function is based on apport_package_hook.py, but omitting some of the
121
113
    # Ubuntu-specific policy about what to report and when
122
114
 
123
 
    # This import is apparently not used, but we're doing it so that if the
124
 
    # import fails, the exception will be caught at a higher level and we'll
125
 
    # report the error by other means.
 
115
    # if the import fails, the exception will be caught at a higher level and
 
116
    # we'll report the error by other means
126
117
    import apport
127
118
 
128
119
    crash_filename = _write_apport_report_to_file(exc_info)
264
255
 
265
256
 
266
257
def _format_plugin_list():
267
 
    return ''.join(plugin.describe_plugins(show_paths=True))
 
258
    plugin_lines = []
 
259
    for name, a_plugin in sorted(plugin.plugins().items()):
 
260
        plugin_lines.append("  %-20s %s [%s]" %
 
261
            (name, a_plugin.path(), a_plugin.__version__))
 
262
    return '\n'.join(plugin_lines)
268
263
 
269
264
 
270
265
def _format_module_list():