2018-12-01 19:34:14 +00:00
|
|
|
#!/bin/sh
|
2018-07-03 14:55:55 +00:00
|
|
|
|
|
|
|
# Give this script a .pdf and it will attempt
|
|
|
|
# to return a proper .bib citation via doi.
|
|
|
|
# Internet connection required.
|
|
|
|
|
2018-12-01 19:34:14 +00:00
|
|
|
if [ -f "$1" ];
|
|
|
|
then
|
|
|
|
# Get the doi from metadata, if not possible, get
|
|
|
|
# doi from pdftotext output, if not possible, exit.
|
|
|
|
doi=$(pdfinfo "$1" | grep -io "doi:.*") ||
|
|
|
|
doi=$(pdftotext "$1" 2>/dev/null - | grep -o "doi:.*" -m 1) ||
|
2018-07-03 14:55:55 +00:00
|
|
|
exit 1
|
2018-12-01 19:34:14 +00:00
|
|
|
else
|
|
|
|
# If not given file, assume argument is doi
|
|
|
|
doi="$1"
|
|
|
|
fi
|
2018-07-03 14:55:55 +00:00
|
|
|
|
|
|
|
# Check crossref.org for the bib citation.
|
2018-12-01 19:34:14 +00:00
|
|
|
curl -s "http://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\\n" |
|
|
|
|
sed -e "/^[^\\(\\t\\|@\\|}\\)]/d"
|