summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorTimmy Keller <tjk@tjkeller.xyz>2021-11-02 16:11:39 -0500
committerTimmy Keller <tjk@tjkeller.xyz>2021-11-02 16:11:39 -0500
commit559e75d16bc039207461683c7120bb9ab03fd4b7 (patch)
tree281779adfc9896208a3249c49938b69228b80a2a /misc
parent73688982c135a0276a64aec7d61aaff4e9434d09 (diff)
downloadscripts-559e75d16bc039207461683c7120bb9ab03fd4b7.tar.xz
scripts-559e75d16bc039207461683c7120bb9ab03fd4b7.zip
pdfautocompile script
Diffstat (limited to 'misc')
-rwxr-xr-xmisc/pdfautocompile39
1 files changed, 38 insertions, 1 deletions
diff --git a/misc/pdfautocompile b/misc/pdfautocompile
index d44ec3f..3c0d8f4 100755
--- a/misc/pdfautocompile
+++ b/misc/pdfautocompile
@@ -1,2 +1,39 @@
#!/bin/sh
-echo "$1" | entr pdflatex "$1" || echo "entr or LaTeX is not installed!"
+interactiveopt() {
+ # Usage: interactiveopt "options" "prompt" "maxopts (if unset than equal to inf)" "col"
+ # Purpose: give the user a numbered list of options. User can specify multiple choices. User can specify either the number or the name of the option.
+ # Output: saved in variable "opt"
+ unset opt # This won't be set if using recursion, do it in a while loop instead
+ while [ -z $opt ] 2>/dev/null; do
+ # Column option
+ [ -n "$4" ] && [ "$4" = "col" ] \
+ && echo "$1" | nl -s': ' | column \
+ || echo "$1" | nl -s': '
+ # Parse user input
+ read -p "$2" choices \
+ && choices="$(echo $choices | cut -d' ' -f1-$3)"
+ for choice in $choices; do
+ case "$choice" in
+ [0-9]*) opt="$(echo "$1" | head -"$(echo $choice | tr -cd '[:digit:]')" | tail -1) $opt" ;;
+ *) opt="$(echo "$1" | grep "^$choice$" 2>/dev/null) $opt" ;;
+ esac || ( echo "Invalid option \"$choice\"" && undet opt && break ) # Why wont this unset opt or break???????
+ done
+ done
+}
+
+listfiles() {
+ pids=$(xdotool search --class "Vim")
+ for pid in $pids; do
+ names="$(xdotool getwindowname $pid | grep '\.tex')\n$names"
+ #$openfiles="$(echo "$name" | cut -d' ' -f1)\n$openfiles"
+ #$openfilepaths="$(echo "$name" | awk -F'[()]' '{ print $2 }')\n$openfiles"
+ done
+ #file="$(echo $openfiles | grep "^$1")"
+ [ -z "$file" ] \
+ && interactiveopt "$(echo $openfiles | sort -bu | tail +2)" "Which file to autocompile? " 1 \
+ && file="$opt"
+}
+
+[ -e "$1" ] && file="$1" || listfiles
+
+echo "$file" | entr pdflatex "$file" || echo "entr or LaTeX is not installed!"