1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/usr/bin/env sh
- #
- # pbrisbin 2013 - open files with the appropriate handler program.
- #
- ###
- read_mime() {
- local file="$1"
-
- xdg-mime query filetype "$file" 2>/dev/null | cut -d ';' -f 1
- }
-
- handle_archive() {
- local archive="$1" directory="${1}_extracted"
-
- mkdir -p "$directory" && cd "$directory" &&
- archive -x "$archive" && NOCD=1 exec urxvtc -cd "$directory"
- }
-
- [ $# -eq 0 ] && exit 1
-
- if [ ! -f "$1" ]; then
- # Assume non-files are URLs
- exec $BROWSER "$1"
- fi
-
- mimetype="$(read_mime "$1")" || mimetype='text/html'
-
- case "$mimetype" in
- text/html) $BROWSER "$1" ;;
- application/pdf) exec zathura "$1" ;;
- application/ogg) exec mplayer "$1" ;;
- audio/*|video/*) exec mplayer "$1" ;;
- image/*) exec mirage "$1" ;;
- text/*) exec urxvtc -e vim "$1" ;;
- application/x-gzip|application/x-rar-compressed|application/zip)
- handle_archive "$1"
- ;;
- esac
|