From a275422d47442e91c0748c5677551d852d6e4f21 Mon Sep 17 00:00:00 2001 From: Salman Abedin Date: Sun, 7 Jun 2020 05:17:35 +0600 Subject: [PATCH] Much cleaner compiler script (#692) Co-authored-by: Salman Abedin --- .local/bin/compiler | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/.local/bin/compiler b/.local/bin/compiler index f28ffe1..4f1ad50 100755 --- a/.local/bin/compiler +++ b/.local/bin/compiler @@ -12,6 +12,7 @@ file=$(readlink -f "$1") dir=${file%/*} base="${file%.*}" +ext="${file##*.}" cd "$dir" || exit @@ -25,25 +26,25 @@ textype() { \ $command --output-directory="$dir" "$base" } -case "$file" in - *\.ms) preconv "$file" | refer -PS -e | groff -me -ms -kept -T pdf > "$base".pdf ;; - *\.mom) preconv "$file" | refer -PS -e | groff -mom -kept -T pdf > "$base".pdf ;; - *\.[0-9]) preconv "$file" | refer -PS -e | groff -mandoc -T pdf > "$base".pdf ;; - *\.[rR]md) Rscript -e "rmarkdown::render('$file', quiet=TRUE)" ;; - *\.tex) textype "$file" ;; - *\.md) if command -v lowdown >/dev/null; then +case "$ext" in + ms) preconv "$file" | refer -PS -e | groff -me -ms -kept -T pdf > "$base".pdf ;; + mom) preconv "$file" | refer -PS -e | groff -mom -kept -T pdf > "$base".pdf ;; + [0-9]) preconv "$file" | refer -PS -e | groff -mandoc -T pdf > "$base".pdf ;; + [rR]md) Rscript -e "rmarkdown::render('$file', quiet=TRUE)" ;; + tex) textype "$file" ;; + md) if command -v lowdown >/dev/null; then lowdown -d nointem -e super "$file" -Tms | groff -mpdfmark -ms -kept > "$base".pdf elif command -v groffdown >/dev/null; then groffdown -i "$file" | groff > "$base.pdf" else pandoc "$file" --pdf-engine=xelatex -o "$base".pdf fi ; ;; - *config.h) sudo make install ;; - *\.c) cc "$file" -o "$base" && "$base" ;; - *\.py) python "$file" ;; - *\.m) octave "$file" ;; - *\.scad) openscad -o "$base".stl "$file" ;; - *\.go) go run "$file" ;; - *\.sent) setsid -f sent "$file" 2>/dev/null ;; + h) sudo make install ;; + c) cc "$file" -o "$base" && "$base" ;; + py) python "$file" ;; + m) octave "$file" ;; + scad) openscad -o "$base".stl "$file" ;; + go) go run "$file" ;; + sent) setsid -f sent "$file" 2>/dev/null ;; *) sed 1q "$file" | grep "^#!/" | sed "s/^#!//" | xargs -r -I % "$file" ;; esac