34 lines
1.1 KiB
Bash
Executable file
34 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
# Preview files & dirs
|
|
file="$1"
|
|
|
|
rfile() {
|
|
file "$1" | sed 's/,\s/\n/g'
|
|
}
|
|
|
|
mime="$(file --mime-type "$(readlink -f $file)" -b)"
|
|
ROWS="$(tput lines)"
|
|
COLS="$(tput cols)"
|
|
|
|
case "$mime" in
|
|
inode/directory)
|
|
(cd "$file" && /usr/bin/ls -A1Fx --color --group-directories-first) ;;
|
|
image/*)
|
|
magick "$file" -geometry $((COLS*8))x$((ROWS*18)) sixel:-
|
|
echo ;;
|
|
video/*)
|
|
tt="$(ffprobe -v error -show_entries format=duration -of \
|
|
default=noprint_wrappers=1:nokey=1 "$file")" ;
|
|
ft="5" ;
|
|
if [ "$ft" -ge "${tt%%.*}" ] ; then ft="0" ; fi
|
|
ffmpeg -hide_banner -loglevel error -ss "$ft" -i "$file" -vframes 1 \
|
|
-f image2pipe - | magick - -geometry $((COLS*8))x$((ROWS*18)) sixel:- ;
|
|
echo ;;
|
|
audio/*)
|
|
rfile "$file" ;;
|
|
text/x-*) bat -p --color=always --no-pager "$file" ;;
|
|
*.pdf) pdftotext "$file" - || file "$file" ;;
|
|
*.csv) column -s, -t < "$file" || cat "$file" ;;
|
|
*.html) links -dump "$file" || cat "$file" ;;
|
|
*) ! [ -d "$file" ] && head -n 47 "$file" && printf "\n\n ..." ;;
|
|
esac
|