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}