summaryrefslogtreecommitdiff
path: root/bibtool/cli.py
diff options
context:
space:
mode:
Diffstat (limited to 'bibtool/cli.py')
-rw-r--r--bibtool/cli.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/bibtool/cli.py b/bibtool/cli.py
index 6fe0890..63e3d5b 100644
--- a/bibtool/cli.py
+++ b/bibtool/cli.py
@@ -19,13 +19,29 @@ def cli():
pass
+@cli.command('extract')
+@click.argument('filename', type=TYPE_FILE)
+@click.option('--all/--single', '-a/-s', 'print_all', default=False)
+def _extract(filename, print_all):
+ for doi in bibtool.extract.get_doi_generator(filename):
+ print(doi)
+ if not print_all:
+ return
+
+
@cli.command('import')
@click.argument('filename', type=TYPE_FILE)
@click.option('--directory', type=TYPE_DIR, default=os.getcwd())
@click.option('--delete/--no-delete', default=False)
@click.option('--doi', type=str, default=None)
def _import(filename, directory, delete, doi):
- bibtex_data = bibtool.extract.get_bibtex_data(filename, doi)
+ doi_generator = bibtool.extract.get_doi_generator(filename)
+ try:
+ doi = next(doi_generator)
+ except StopIteration:
+ raise Exception('Could not extract a DOI from {}'.format(filename))
+
+ bibtex_data = bibtool.extract.get_bibtex_data(doi)
if not bibtex_data.entries:
raise Exception('Did not find any Bibtex entry.')