summaryrefslogtreecommitdiff
path: root/scripts/.local/bin/getbib
blob: 273f9038e412f6d1838e4c2a7c93c902f2b8a0f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh
[ -z "$1" ] && echo "Give either a pdf file or a DOI as an argument." && exit

if [ -f "$1" ]; then
	# Try to get DOI from pdfinfo or pdftotext output.
	doi=$(pdfinfo "$1" | grep -io "doi:.*") ||
	doi=$(pdfinfo "$1" | grep -io "Digital Object Identifier.*") ||
	doi=$(pdftotext "$1" - | grep -io "doi:.*" -m 1) ||
	doi=$(pdftotext "$1" - | grep -io "DOI:.*" -m 1) ||
	doi=$(pdftotext "$1" - | grep -io "doi.org/.*" -m 1) ||
	doi=$(pdftotext "$1" - | grep -io "Digital Object Identifier.*" -m 1) ||
	exit 1
else
	doi="$1"
fi

# DOI never has spaces, so we can always take the last word in line
doi=$(echo "$doi" | awk '{ print $NF }')

echo "Detected DOI: $doi"

# Check crossref.org for the bib citation.
curl -s "http://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\\n"

#wget "https://doi.org/$doi"