aboutsummaryrefslogtreecommitdiff
path: root/config/lf/previewer.sh
blob: 429d7fec6130b12ed1571eb52a2c05ac0bc7d651 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/sh

set -eo pipefail

file="$1";
w="$2";
h="$3";
x="$4";
y="$5";

show_image() {
	kitten icat --transfer-mode file --stdin no --place "${w}x${h}@${x}x${y}" "$file" < /dev/null > /dev/tty;
}

case "$1" in
  # Archives
	*.tgz|*.tar.gz) tar tzf "$1" ;;
	*.tar.bz2|*.tbz2) tar tjf "$1" ;;
	*.tar.txz|*.txz) xz --list "$1" ;;
	*.tar) tar tf "$1" ;;
	*.zip|*.jar|*.war|*.ear|*.oxt) unzip -l "$1" ;;
	*.rar) unrar l "$1" ;;
	*.7z) 7z l "$1" ;;
	*.o) nm "$1" | less ;;
  *.apk) mediainfo "$1" ;;

	# Docs
  *.md|*.org) glow -s dark "$1" ;;
	*.csv) cat "$1" | sed 's/,/  \|  /g' ;;
	*.pdf) pdftotext "$1" - ;;
	*.docx) docx2txt "$1" - ;;
	*.epub) mediainfo "$1" ;;
	*.[1-8]) man "$1" | col -b ;;

	# Images
	*.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.gif)
		show_image 2>/dev/null || chafa -f symbols --size "$((w * 2 / 3))" "$file" || echo "cant display image";
		exit 1;
	;;

	# Audio
  *.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.flac)
    mediainfo "$1"
  ;;

  # Video
  *.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.mts|*.m4v|*.r[am]|*.qt|*.divx)
    mediainfo "$1";
  ;;

  # Syntax
	*) bat --color always "$1" || cat "$1" ;;
esac