blob: 755da51f3ff503e706ea8fb55bc880a4ed13f25a (
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
|
#!/bin/sh
# opener: opens files according to its contents
# takes one path as its argument, launches the appropriate program for it
if ! [ -f "$1" ]; then
printf 'file %s does not exist!\n' "$1" >/dev/stderr
return 1
fi
FILEPATH="$1"
FILEMIME="$(file -ib "$FILEPATH")"
echo() {
printf '%s\n' "$*"
}
case "$FILEMIME" in
#ebooks
application/epub*|application/pdf|application/postscript|image/vnd.djvu)
if [ -n "$READER" ]; then
$READER "$FILEPATH">/dev/null 2>&1 &
else
zathura "$FILEPATH" &
fi ;;
#videos
video/*)
mpv --input-ipc-server=/tmp/mpv-socket$(date +%s) --quiet "$FILEPATH" >/dev/null 2>&1 & ;;
#images
image/*)
sxiv -a "$FILEPATH">/dev/null 2>&1 & ;;
#audio
audio/*)
mpv --input-ipc-server=/tmp/mpv-socket$(date +%s) "$FILEPATH" >/dev/null 2>&1 & ;;
#text
text/*)
if [ -n "$EDITOR" ]; then
$EDITOR "$FILEPATH">/dev/null 2>&1 &
else
vi "$FILEPATH" &
fi ;;
#catchall
*)
echo "file $(basename "$FILEPATH") could not be opened. its type is $FILEMIME, go tell ensa that opener didn't work" >/dev/stderr
return 1 ;;
esac
|