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.gui_launch import calibre calibre(['__CALIBRE_GUI_DEBUG__', logpath])
def main(args=sys.argv): from calibre.constants import debug debug() opts, args = option_parser().parse_args(args) if opts.gui: from calibre.gui_launch import calibre print_basic_debug_info() calibre(['calibre']) elif opts.gui_debug is not None: run_debug_gui(opts.gui_debug) elif opts.viewer: from calibre.gui_launch import ebook_viewer ebook_viewer(['ebook-viewer', '--debug-javascript'] + args[1:]) elif opts.py_console: from calibre.utils.pyconsole.main import main main() elif opts.command: sys.argv = args exec(opts.command) elif opts.debug_device_driver: debug_device_driver() elif opts.add_simple_plugin is not None: add_simple_plugin(opts.add_simple_plugin) elif opts.paths: prints('CALIBRE_RESOURCES_PATH='+sys.resources_location) prints('CALIBRE_EXTENSIONS_PATH='+sys.extensions_location) prints('CALIBRE_PYTHON_PATH='+os.pathsep.join(sys.path)) elif opts.reinitialize_db is not None: reinit_db(opts.reinitialize_db) elif opts.inspect_mobi: for path in args[1:]: inspect_mobi(path) elif opts.edit_book: from calibre.gui_launch import ebook_edit ebook_edit(['ebook-edit'] + args[1:]) elif opts.explode_book: from calibre.ebooks.tweak import tweak tweak(opts.explode_book) elif opts.test_build: from calibre.test_build import test test() elif opts.shutdown_running_calibre: from calibre.gui2.main import shutdown_other shutdown_other() elif opts.subset_font: from calibre.utils.fonts.sfnt.subset import main main(['subset-font'] + args[1:]) elif opts.exec_file: run_script(opts.exec_file, args[1:]) elif opts.run_plugin: from calibre.customize.ui import find_plugin plugin = find_plugin(opts.run_plugin) if plugin is None: prints(_('No plugin named %s found')%opts.run_plugin) raise SystemExit(1) plugin.cli_main([plugin.name] + args[1:]) elif opts.diff: from calibre.gui2.tweak_book.diff.main import main main(['calibre-diff'] + args[1:]) elif opts.default_programs: if not iswindows: raise SystemExit('Can only be run on Microsoft Windows') if opts.default_programs == 'register': from calibre.utils.winreg.default_programs import register as func else: from calibre.utils.winreg.default_programs import unregister as func print 'Running', func.__name__, '...' func() elif opts.new_server: from calibre.srv.standalone import main main(args) elif opts.export_all_calibre_data: from calibre.utils.exim import run_exporter run_exporter() elif opts.import_calibre_data: from calibre.utils.exim import run_importer run_importer() elif len(args) >= 2 and args[1].rpartition('.')[-1] in {'py', 'recipe'}: run_script(args[1], args[2:]) elif len(args) >= 2 and args[1].rpartition('.')[-1] in {'mobi', 'azw', 'azw3', 'docx', 'odt'}: for path in args[1:]: ext = path.rpartition('.')[-1] if ext in {'docx', 'odt'}: from calibre.ebooks.docx.dump import dump dump(path) elif ext in {'mobi', 'azw', 'azw3'}: inspect_mobi(path) else: print ('Cannot dump unknown filetype: %s' % path) elif len(args) >= 2 and os.path.exists(os.path.join(args[1], '__main__.py')): sys.path.insert(0, args[1]) run_script(os.path.join(args[1], '__main__.py'), args[2:]) else: from calibre import ipython ipython() return 0
def main(args=sys.argv): from calibre.constants import debug debug() opts, args = option_parser().parse_args(args) if opts.gui: from calibre.gui_launch import calibre calibre(['calibre'] + args[1:]) elif opts.gui_debug is not None: run_debug_gui(opts.gui_debug) elif opts.viewer: from calibre.gui_launch import ebook_viewer ebook_viewer(['ebook-viewer', '--debug-javascript'] + args[1:]) elif opts.command: sys.argv = args exec(opts.command) elif opts.debug_device_driver: debug_device_driver() elif opts.add_simple_plugin is not None: add_simple_plugin(opts.add_simple_plugin) elif opts.paths: prints('CALIBRE_RESOURCES_PATH=' + sys.resources_location) prints('CALIBRE_EXTENSIONS_PATH=' + sys.extensions_location) prints('CALIBRE_PYTHON_PATH=' + os.pathsep.join(sys.path)) elif opts.reinitialize_db is not None: reinit_db(opts.reinitialize_db) elif opts.inspect_mobi: for path in args[1:]: inspect_mobi(path) elif opts.edit_book: from calibre.gui_launch import ebook_edit ebook_edit(['ebook-edit'] + args[1:]) elif opts.explode_book or opts.implode_book: from calibre.ebooks.tweak import explode, implode try: a1, a2 = args[1:] except Exception: raise SystemExit('Must provide exactly two arguments') f = explode if opts.explode_book else implode f(a1, a2) elif opts.test_build: from calibre.test_build import test test() elif opts.shutdown_running_calibre: from calibre.gui2.main import shutdown_other shutdown_other() elif opts.subset_font: from calibre.utils.fonts.sfnt.subset import main main(['subset-font'] + args[1:]) elif opts.exec_file: run_script(opts.exec_file, args[1:]) elif opts.run_plugin: from calibre.customize.ui import find_plugin plugin = find_plugin(opts.run_plugin) if plugin is None: prints(_('No plugin named %s found') % opts.run_plugin) raise SystemExit(1) plugin.cli_main([plugin.name] + args[1:]) elif opts.diff: from calibre.gui2.tweak_book.diff.main import main main(['calibre-diff'] + args[1:]) elif opts.default_programs: if not iswindows: raise SystemExit('Can only be run on Microsoft Windows') if opts.default_programs == 'register': from calibre.utils.winreg.default_programs import register as func else: from calibre.utils.winreg.default_programs import unregister as func print('Running', func.__name__, '...') func() elif opts.export_all_calibre_data: args = args[1:] from calibre.utils.exim import run_exporter run_exporter(args=args) elif opts.import_calibre_data: from calibre.utils.exim import run_importer run_importer() elif len(args) >= 2 and args[1].rpartition('.')[-1] in {'py', 'recipe'}: run_script(args[1], args[2:]) elif len(args) >= 2 and args[1].rpartition('.')[-1] in { 'mobi', 'azw', 'azw3', 'docx', 'odt' }: for path in args[1:]: ext = path.rpartition('.')[-1] if ext in {'docx', 'odt'}: from calibre.ebooks.docx.dump import dump dump(path) elif ext in {'mobi', 'azw', 'azw3'}: inspect_mobi(path) else: print('Cannot dump unknown filetype: %s' % path) elif len(args) >= 2 and os.path.exists(os.path.join( args[1], '__main__.py')): sys.path.insert(0, args[1]) run_script(os.path.join(args[1], '__main__.py'), args[2:]) else: load_user_plugins() from calibre import ipython ipython() return 0
def main(args=sys.argv): from calibre.constants import debug debug() opts, args = option_parser().parse_args(args) if opts.gui: from calibre.gui_launch import calibre print_basic_debug_info() calibre(['calibre']) elif opts.gui_debug is not None: run_debug_gui(opts.gui_debug) elif opts.viewer: from calibre.gui_launch import ebook_viewer ebook_viewer(['ebook-viewer', '--debug-javascript'] + args[1:]) elif opts.py_console: from calibre.utils.pyconsole.main import main main() elif opts.command: sys.argv = args exec(opts.command) elif opts.debug_device_driver: debug_device_driver() elif opts.add_simple_plugin is not None: add_simple_plugin(opts.add_simple_plugin) elif opts.paths: prints('CALIBRE_RESOURCES_PATH='+sys.resources_location) prints('CALIBRE_EXTENSIONS_PATH='+sys.extensions_location) prints('CALIBRE_PYTHON_PATH='+os.pathsep.join(sys.path)) elif opts.reinitialize_db is not None: reinit_db(opts.reinitialize_db) elif opts.inspect_mobi: for path in args[1:]: inspect_mobi(path) elif opts.edit_book: from calibre.gui_launch import ebook_edit ebook_edit(['ebook-edit'] + args[1:]) elif opts.explode_book: from calibre.ebooks.tweak import tweak tweak(opts.explode_book) elif opts.test_build: from calibre.test_build import test test() elif opts.shutdown_running_calibre: from calibre.gui2.main import shutdown_other shutdown_other() elif opts.subset_font: from calibre.utils.fonts.sfnt.subset import main main(['subset-font']+[opts.subset_font]+args[1:]) elif opts.exec_file: run_script(opts.exec_file, args[1:]) elif opts.run_plugin: from calibre.customize.ui import find_plugin plugin = find_plugin(opts.run_plugin) if plugin is None: prints(_('No plugin named %s found')%opts.run_plugin) raise SystemExit(1) plugin.cli_main([plugin.name] + args[1:]) elif opts.diff: from calibre.gui2.tweak_book.diff.main import main main(['calibre-diff'] + args[1:]) elif len(args) >= 2 and args[1].rpartition('.')[-1] in {'py', 'recipe'}: run_script(args[1], args[2:]) elif len(args) >= 2 and args[1].rpartition('.')[-1] in {'mobi', 'azw', 'azw3', 'docx', 'odt'}: for path in args[1:]: ext = path.rpartition('.')[-1] if ext in {'docx', 'odt'}: from calibre.ebooks.docx.dump import dump dump(path) elif ext in {'mobi', 'azw', 'azw3'}: inspect_mobi(path) else: print ('Cannot dump unknown filetype: %s' % path) elif len(args) >= 2 and os.path.exists(os.path.join(args[1], '__main__.py')): sys.path.insert(0, args[1]) run_script(os.path.join(args[1], '__main__.py'), args[2:]) else: from calibre import ipython ipython() return 0