dotfiles/scripts/p
2023-05-30 11:47:04 -06:00

40 lines
1 KiB
Bash
Executable file

#!/bin/sh
# Preview files & dirs
file="$1"
# Helps with fzf_nav visualization
rfile() {
file "$1" | sed 's/,\s/\n/g'
}
# If executable, run 'file' and exit
file "$file" | grep -q "executable" && rfile "$file" && exit
# If directory, list contents
[ -d "$file" ] && (cd "$file" && /usr/bin/ls -A1Fx --color --group-directories-first) && exit
case $file in
# Images
*.jpeg) rfile "$file" ;;
*.png) rfile "$file" ;;
*.jpg) rfile "$file" ;;
*.gif) rfile "$file" ;;
*.svg) rfile "$file" ;;
# Videos
*.webm) rfile "$file" ;;
*.mp4) rfile "$file" ;;
*.flv) rfile "$file" ;;
*.mkv) rfile "$file" ;;
*.avi) rfile "$file" ;;
*.m4v) rfile "$file" ;;
# Audio
*.flac) rfile "$file" ;;
*.mp3) rfile "$file" ;;
*.ogg) rfile "$file" ;;
# Documents
*.pdf) pdftotext "$file" - || file "$file" ;;
*.csv) column -s, -t < "$file" || cat "$file" ;;
# Other
*.html) links -dump "$file" || cat "$file" ;;
*) ! [ -d "$file" ] && head -n 47 "$file" && printf "\n\n ..." ;;
esac