skript lagt til
This commit is contained in:
parent
481b3015e6
commit
d62ad992cb
1 changed files with 79 additions and 0 deletions
79
ztlk
Executable file
79
ztlk
Executable file
|
|
@ -0,0 +1,79 @@
|
|||
!/bin/sh
|
||||
|
||||
|
||||
yank_bibkey() {
|
||||
echo -n "@$1" | wl-copy
|
||||
}
|
||||
|
||||
BIB_FIL="/home/emanuel/Documents/bib/*.bib"
|
||||
PDF_DIR="/home/emanuel/Documents/pdf/"
|
||||
MENU_CMD="wmenu -i -N 000000 -n 888888 -M 020202 -m ffffff -S 020202 -s ffffff"
|
||||
FONT="Iosevka Term Light 8"
|
||||
PDF_CMD="sioyek"
|
||||
|
||||
formt_bib() {
|
||||
awk '
|
||||
BEGIN { RS="@"; FS="\n" }
|
||||
/./ {
|
||||
key = author = title = year = ""
|
||||
key = $1
|
||||
sub(/^[a-zA-Z0-9_]+\{/, "", key)
|
||||
sub(/,$/, "", key)
|
||||
|
||||
for (i=2; i<=NF; i++) {
|
||||
if ($i ~ /author[[:space:]]*=/) {
|
||||
author = $i
|
||||
sub(/.*=[[:space:]]*/, "", author)
|
||||
} else if ($i ~ /^[[:space:]]*title[[:space:]]*=/) {
|
||||
title = $i
|
||||
sub(/.*=[[:space:]]*/, "", title)
|
||||
} else if ($i ~ /year[[:space:]]*=/) {
|
||||
year = $i
|
||||
sub(/.*=[[:space:]]*/, "", year)
|
||||
}
|
||||
}
|
||||
|
||||
gsub(/[{"}]/, "", author); sub(/,$/, "", author); gsub(/^[ \t]+|[ \t]+$/, "", author)
|
||||
gsub(/[{"}]/, "", title); sub(/,$/, "", title); gsub(/^[ \t]+|[ \t]+$/, "", title)
|
||||
gsub(/[{"}]/, "", year); sub(/,$/, "", year); gsub(/^[ \t]+|[ \t]+$/, "", year)
|
||||
|
||||
if (key && author && title && year) printf "%s|%s|%s|[%s]\n", author, year, title, key
|
||||
}' $BIB_FIL
|
||||
}
|
||||
|
||||
main () {
|
||||
while :; do
|
||||
SEL_ENT=$(formt_bib | sort | column -t -s '|' -o ' ' | $MENU_CMD -f "$FONT" -l 30 -p ":bib")
|
||||
|
||||
[ -z "$SEL_ENT" ] && exit 0
|
||||
|
||||
BIB_KEY=$(echo "$SEL_ENT" | sed 's/.*\[//;s/\].*//')
|
||||
PDF_PATH="${PDF_DIR}${BIB_KEY}.pdf"
|
||||
|
||||
if [ -f "$PDF_PATH" ]; then
|
||||
SEL_MENU=$(printf "open\nyank $BIB_KEY\n.." | $MENU_CMD -f "$FONT" -l 3 -p ":$BIB_KEY")
|
||||
case $SEL_MENU in
|
||||
"open")
|
||||
yank_bibkey "$BIB_KEY"
|
||||
"$PDF_CMD" "$PDF_PATH" &
|
||||
break
|
||||
;;
|
||||
yank*)
|
||||
yank_bibkey "$BIB_KEY"
|
||||
break
|
||||
;;
|
||||
"..")
|
||||
continue
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
else
|
||||
yank_bibkey "$BIB_KEY"
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
main
|
||||
Loading…
Add table
Reference in a new issue