summaryrefslogtreecommitdiffstats
path: root/config/preview_file.sh
diff options
context:
space:
mode:
authorRuixi-rebirth <ruixirebirth@gmail.com>2023-05-27 20:49:55 -0600
committerGitHub <noreply@github.com>2023-05-27 22:49:55 -0400
commit20d51cf17a5e93cc20373423efeca72fd7c100d5 (patch)
treedca1d1be6cc5a31192c8a8acccef974649e1acce /config/preview_file.sh
parent493af3185092036cbbae81ae620b101f66cf4e9a (diff)
Add flake support (#297)
Add flake support
Diffstat (limited to 'config/preview_file.sh')
-rwxr-xr-xconfig/preview_file.sh124
1 files changed, 62 insertions, 62 deletions
diff --git a/config/preview_file.sh b/config/preview_file.sh
index 368ea3b..a6940c6 100755
--- a/config/preview_file.sh
+++ b/config/preview_file.sh
@@ -8,7 +8,7 @@
## preview_script = "~/.config/joshuto/preview_file.sh"
## ```
## Joshuto will call this script for each file when first hovered by the cursor.
-## If this script returns with an exit code 0, the stdout of this script will be
+## If this script returns with an exit code 0, the stdout of this script will be
## the file's preview text in Joshuto's right panel.
## The preview text will be cached by Joshuto and only renewed on reload.
## ANSI color codes are supported if Joshuto is build with the `syntax_highlight`
@@ -42,41 +42,41 @@ PREVIEW_WIDTH=10
PREVIEW_HEIGHT=10
while [ "$#" -gt 0 ]; do
- case "$1" in
- "--path")
- shift
- FILE_PATH="$1"
- ;;
- "--preview-width")
- shift
- PREVIEW_WIDTH="$1"
- ;;
- "--preview-height")
- shift
- PREVIEW_HEIGHT="$1"
- ;;
- esac
- shift
+ case "$1" in
+ "--path")
+ shift
+ FILE_PATH="$1"
+ ;;
+ "--preview-width")
+ shift
+ PREVIEW_WIDTH="$1"
+ ;;
+ "--preview-height")
+ shift
+ PREVIEW_HEIGHT="$1"
+ ;;
+ esac
+ shift
done
handle_extension() {
case "${FILE_EXTENSION_LOWER}" in
- ## Archive
- a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
- rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
+ ## Archive
+ a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
+ rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
atool --list -- "${FILE_PATH}" && exit 0
bsdtar --list --file "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
rar)
## Avoid password prompt by providing empty password
unrar lt -p- -- "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
7z)
## Avoid password prompt by providing empty password
7z l -p -- "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## PDF
+ ## PDF
pdf)
## Preview as text conversion
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \
@@ -84,29 +84,29 @@ handle_extension() {
mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \
fmt -w "${PREVIEW_WIDTH}" && exit 0
exiftool "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## BitTorrent
+ ## BitTorrent
torrent)
transmission-show -- "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## OpenDocument
+ ## OpenDocument
odt|ods|odp|sxw)
## Preview as text conversion
odt2txt "${FILE_PATH}" && exit 0
## Preview as markdown conversion
pandoc -s -t markdown -- "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## XLSX
+ ## XLSX
xlsx)
## Preview as csv conversion
## Uses: https://github.com/dilshod/xlsx2csv
xlsx2csv -- "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## HTML
+ ## HTML
htm|html|xhtml)
## Preview as text conversion
w3m -dump "${FILE_PATH}" && exit 0
@@ -115,14 +115,14 @@ handle_extension() {
pandoc -s -t markdown -- "${FILE_PATH}" && exit 0
;;
- ## JSON
+ ## JSON
json|ipynb)
jq --color-output . "${FILE_PATH}" && exit 0
python -m json.tool -- "${FILE_PATH}" && exit 0
;;
- ## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
- ## by file(1).
+ ## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
+ ## by file(1).
dff|dsf|wv|wvc)
mediainfo "${FILE_PATH}" && exit 0
exiftool "${FILE_PATH}" && exit 0
@@ -131,69 +131,69 @@ handle_extension() {
}
handle_mime() {
- local mimetype="${1}"
+ local mimetype="${1}"
- case "${mimetype}" in
- ## RTF and DOC
+ case "${mimetype}" in
+ ## RTF and DOC
text/rtf|*msword)
## Preview as text conversion
## note: catdoc does not always work for .doc files
## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/
catdoc -- "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## DOCX, ePub, FB2 (using markdown)
- ## You might want to remove "|epub" and/or "|fb2" below if you have
- ## uncommented other methods to preview those formats
+ ## DOCX, ePub, FB2 (using markdown)
+ ## You might want to remove "|epub" and/or "|fb2" below if you have
+ ## uncommented other methods to preview those formats
*wordprocessingml.document|*/epub+zip|*/x-fictionbook+xml)
## Preview as markdown conversion
pandoc -s -t markdown -- "${FILE_PATH}" | bat -l markdown \
--color=always --paging=never \
- --style=plain \
- --terminal-width="${PREVIEW_WIDTH}" && exit 0
- exit 1;;
+ --style=plain \
+ --terminal-width="${PREVIEW_WIDTH}" && exit 0
+ exit 1 ;;
- ## E-mails
- message/rfc822)
- ## Parsing performed by mu: https://github.com/djcb/mu
- mu view -- "${FILE_PATH}" && exit 0
- exit 1;;
+ ## E-mails
+ message/rfc822)
+ ## Parsing performed by mu: https://github.com/djcb/mu
+ mu view -- "${FILE_PATH}" && exit 0
+ exit 1 ;;
- ## XLS
+ ## XLS
*ms-excel)
## Preview as csv conversion
## xls2csv comes with catdoc:
## http://www.wagner.pp.ru/~vitus/software/catdoc/
xls2csv -- "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## Text
+ ## Text
text/* | */xml)
bat --color=always --paging=never \
- --style=plain \
- --terminal-width="${PREVIEW_WIDTH}" \
- "${FILE_PATH}" && exit 0
+ --style=plain \
+ --terminal-width="${PREVIEW_WIDTH}" \
+ "${FILE_PATH}" && exit 0
cat "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## DjVu
+ ## DjVu
image/vnd.djvu)
## Preview as text conversion (requires djvulibre)
djvutxt "${FILE_PATH}" | fmt -w "${PREVIEW_WIDTH}" && exit 0
exiftool "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## Image
+ ## Image
image/*)
## Preview as text conversion
exiftool "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
- ## Video and audio
+ ## Video and audio
video/* | audio/*)
mediainfo "${FILE_PATH}" && exit 0
exiftool "${FILE_PATH}" && exit 0
- exit 1;;
+ exit 1 ;;
esac
}