commit bd2a773edb46da707fe848d805390ab9acd37c63
parent 35e9fa3443bfcd8066f13e76eb2638a3c4b62a10
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Wed, 24 Nov 2021 19:04:37 +0100
add getrefer
Diffstat:
2 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
@@ -7,6 +7,7 @@ install:
mkdir -p $(DESTDIR)$(PREFIX)/share/scholarref
install -m 775 getdoi $(DESTDIR)$(PREFIX)/bin
install -m 775 getref $(DESTDIR)$(PREFIX)/bin
+ install -m 775 getrefer $(DESTDIR)$(PREFIX)/bin
install -m 775 scholarref $(DESTDIR)$(PREFIX)/bin
install -m 775 shdl $(DESTDIR)$(PREFIX)/bin
install -m 775 articlesearch $(DESTDIR)$(PREFIX)/bin
@@ -16,6 +17,7 @@ install:
uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/getdoi
rm -f $(DESTDIR)$(PREFIX)/bin/getref
+ rm -f $(DESTDIR)$(PREFIX)/bin/getrefer
rm -f $(DESTDIR)$(PREFIX)/bin/scholarref
rm -f $(DESTDIR)$(PREFIX)/bin/shdl
rm -f $(DESTDIR)$(PREFIX)/bin/articlesearch
diff --git a/getrefer b/getrefer
@@ -0,0 +1,40 @@
+#!/bin/sh
+# reads DOIs (without URL prefix) as stdin and returns refer(1) format references
+
+while read -r doi
+do
+ curl -sLH "Accept: application/x-research-info-systems" "https://doi.org/${doi}"
+done | \
+awk '
+function rmlbl(s) {
+ sub(/[A-Za-z][A-Za-z0-9] - /, "");
+}
+
+BEGIN { delete authors[0] }
+
+/DO - / { doi = $3 }
+/TI - / { rmlbl($0); title = $0 }
+/T2 - / { rmlbl($0); journal = $0 }
+/AU - / { rmlbl($0); authors[length(authors)] = $0 }
+/PY - / { year = $3 }
+/SP - / { page = $3 }
+/IS - / { issue = $3 }
+/VL - / { volume = $3 }
+
+END {
+ firstauthor = authors[0]
+ sub(/,.*/, "", firstauthor)
+ printf "%%L %s%d\n", firstauthor, year
+ for (i in authors)
+ printf "%%A %s\n", authors[i]
+ printf "%%T %s\n", title
+ printf "%%J %s\n", journal
+ printf "%%D %d\n", year
+ printf "%%N %s", volume
+ if (issue)
+ printf "(%s)", issue
+ printf "\n%%P %s\n", page
+ if (doi)
+ printf "%%O https://doi.org/%s\n", doi
+}
+'