This commit is contained in:
Kovid Goyal 2012-09-17 11:33:49 +05:30
parent eec37af75b
commit bf76858cb3
2 changed files with 26 additions and 32 deletions

View File

@ -6,7 +6,7 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
Embedded console for debugging. Embedded console for debugging.
''' '''
import sys, os import sys, os, functools
from calibre.utils.config import OptionParser from calibre.utils.config import OptionParser
from calibre.constants import iswindows from calibre.constants import iswindows
from calibre import prints from calibre import prints
@ -160,26 +160,32 @@ def add_simple_plugin(path_to_plugin):
os.chdir(odir) os.chdir(odir)
shutil.rmtree(tdir) shutil.rmtree(tdir)
def run_debug_gui(logpath): def print_basic_debug_info(out=None):
import time, platform if out is None: out = sys.stdout
time.sleep(3) # Give previous GUI time to shutdown fully and release locks out = functools.partial(prints, file=out)
from calibre.constants import __appname__, __version__, isosx import platform
print __appname__, _('Debug log') from calibre.constants import __appname__, get_version, isportable, isosx
print __appname__, __version__ out(__appname__, get_version(), 'Portable' if isportable else '')
print platform.platform() out(platform.platform(), platform.system())
print platform.system() out(platform.system_alias(platform.system(), platform.release(),
print platform.system_alias(platform.system(), platform.release(), platform.version()))
platform.version()) out('Python', platform.python_version())
print 'Python', platform.python_version()
try: try:
if iswindows: if iswindows:
print 'Windows:', platform.win32_ver() out('Windows:', platform.win32_ver())
elif isosx: elif isosx:
print 'OSX:', platform.mac_ver() out('OSX:', platform.mac_ver())
else: else:
print 'Linux:', platform.linux_distribution() out('Linux:', platform.linux_distribution())
except: except:
pass pass
def run_debug_gui(logpath):
import time
time.sleep(3) # Give previous GUI time to shutdown fully and release locks
from calibre.constants import __appname__
prints(__appname__, _('Debug log'))
print_basic_debug_info()
from calibre.gui2.main import main from calibre.gui2.main import main
main(['__CALIBRE_GUI_DEBUG__', logpath]) main(['__CALIBRE_GUI_DEBUG__', logpath])
@ -206,6 +212,7 @@ def main(args=sys.argv):
opts, args = option_parser().parse_args(args) opts, args = option_parser().parse_args(args)
if opts.gui: if opts.gui:
from calibre.gui2.main import main from calibre.gui2.main import main
print_basic_debug_info()
main(['calibre']) main(['calibre'])
elif opts.gui_debug is not None: elif opts.gui_debug is not None:
run_debug_gui(opts.gui_debug) run_debug_gui(opts.gui_debug)

View File

@ -62,10 +62,11 @@ def debug(ioreg_to_tmp=False, buf=None, plugins=None):
already have been called (for example in the main GUI), pass in the list of already have been called (for example in the main GUI), pass in the list of
device plugins as the plugins parameter. device plugins as the plugins parameter.
''' '''
import textwrap, platform import textwrap
from calibre.customize.ui import device_plugins from calibre.customize.ui import device_plugins
from calibre.debug import print_basic_debug_info
from calibre.devices.scanner import DeviceScanner, win_pnp_drives from calibre.devices.scanner import DeviceScanner, win_pnp_drives
from calibre.constants import iswindows, isosx, __version__ from calibre.constants import iswindows, isosx
from calibre import prints from calibre import prints
oldo, olde = sys.stdout, sys.stderr oldo, olde = sys.stdout, sys.stderr
@ -85,21 +86,7 @@ def debug(ioreg_to_tmp=False, buf=None, plugins=None):
out('Startup failed for device plugin: %s'%d) out('Startup failed for device plugin: %s'%d)
try: try:
out('Calibre Version:', __version__) print_basic_debug_info(out=buf)
out(platform.platform(), platform.system())
out(platform.system_alias(platform.system(), platform.release(),
platform.version()))
out('Python', platform.python_version())
try:
if iswindows:
out('Windows:', platform.win32_ver())
elif isosx:
out('OSX:', platform.mac_ver())
else:
out('Linux:', platform.linux_distribution())
except:
pass
s = DeviceScanner() s = DeviceScanner()
s.scan() s.scan()
devices = (s.devices) devices = (s.devices)