]> gitweb.fluxo.info Git - scripts.git/commitdiff
Feat: show: add --details command to show BibTeX entries
authorSilvio Rhatto <rhatto@riseup.net>
Sat, 1 Jun 2024 10:19:59 +0000 (07:19 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sat, 1 Jun 2024 10:19:59 +0000 (07:19 -0300)
show

diff --git a/show b/show
index 8dcdb06b61feac6e8e5884d2735c478ac2b43939..b0e983d730b2b0b6053185df08caafd9bbea138b 100755 (executable)
--- a/show
+++ b/show
@@ -7,6 +7,7 @@
 PROGRAM="$0"
 BASENAME="`basename $0`"
 DOCS="$HOME/data/doc"
+BIBLIO="$DOCS/bibliographies"
 FILELIST=".filelist"
 LIST="$DOCS/$FILELIST"
 DOC_PATTERN=".*\.(txt|doc|docx|rtf|pdf|sxc|csv|odt|odf|ods|xls|xlsx|ppt|epub|mobi|djvu|lit)"
@@ -68,6 +69,19 @@ fi
 if [ "$ARG" == "--search" ]; then
   shift
   grep -i -- "$*" $LIST
+elif [ "$ARG" == "--details" ]; then
+  shift
+  entry="`echo $* | sed -e 's/^@//'`"
+  if grep -qiR -- "$entry" $BIBLIO; then
+    grep -iR -- "$entry" $BIBLIO | cut -d : -f 1 | while read file; do
+      echo "At $file:"
+      echo ""
+      # Thanks https://tex.stackexchange.com/questions/28506/how-to-use-a-command-line-tool-to-extract-a-bibtex-reference-that-contains-a-sea
+      awk -v RS='\n@' "/${entry}/" $file
+    done
+  else
+    find $DOCS -name ${1}.bib -exec cat {} \;
+  fi
 elif [ "$ARG" == "--watch" ]; then
   # Convert symlink to full path and start inotifywait loop
   folder="`readlink -f $DOCS`"