From 7c53c1b029a8a04bf02f5606ca22812b22f5f2b8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 11 Jul 2018 07:12:38 +0530 Subject: [PATCH] Add an "all" keyword to export all known libraries --- src/calibre/debug.py | 3 ++- src/calibre/utils/exim.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/calibre/debug.py b/src/calibre/debug.py index 9c58dbf793..b204bfbbb1 100644 --- a/src/calibre/debug.py +++ b/src/calibre/debug.py @@ -97,7 +97,8 @@ Everything after the -- is passed to the script. help=_('Export all calibre data (books/settings/plugins). Normally, you will' ' be asked for the export dir and the libraries to export. You can also specify them' ' as command line arguments to skip the questions.' - ' Use absolute paths for the export directory and libraries.')) + ' Use absolute paths for the export directory and libraries.' + ' The special keyword "all" can be used to export all libraries.')) parser.add_option('--import-calibre-data', default=False, action='store_true', help=_('Import previously exported calibre data')) parser.add_option('-s', '--shutdown-running-calibre', default=False, diff --git a/src/calibre/utils/exim.py b/src/calibre/utils/exim.py index 1f20a21ba0..567dfd4fb3 100644 --- a/src/calibre/utils/exim.py +++ b/src/calibre/utils/exim.py @@ -391,7 +391,10 @@ def run_exporter(export_dir=None, args=None): raise SystemExit('You must specify the export dir and libraries to export') export_dir = args[0] all_libraries = {os.path.normcase(os.path.abspath(path)):lus for path, lus in all_known_libraries().iteritems()} - libraries = {os.path.normcase(os.path.abspath(os.path.expanduser(path))) for path in args[1:]} + if 'all' in args[1:]: + libraries = set(all_libraries) + else: + libraries = {os.path.normcase(os.path.abspath(os.path.expanduser(path))) for path in args[1:]} if libraries - set(all_libraries): raise SystemExit('Unknown library: ' + tuple(libraries - all_libraries)[0]) libraries = {p: all_libraries[p] for p in libraries}