diff --git a/doc/batpipe.md b/doc/batpipe.md index fb63337..40334cf 100644 --- a/doc/batpipe.md +++ b/doc/batpipe.md @@ -27,6 +27,7 @@ Like [lesspipe](https://github.com/wofr06/lesspipe), `batpipe` is designed to wo | `*.tar`, `*.tar.gz` | `tar` | | `*.zip`, `*.jar` | `unzip` | | `*.gz` | `gunzip` | +| `*.xz` | `xz` | ## External Viewers diff --git a/src/batpipe.sh b/src/batpipe.sh index 3263445..aa7e66d 100755 --- a/src/batpipe.sh +++ b/src/batpipe.sh @@ -109,7 +109,7 @@ fi # Viewers: # ----------------------------------------------------------------------------- -BATPIPE_VIEWERS=("ls" "tar" "unzip" "gunzip") +BATPIPE_VIEWERS=("ls" "tar" "unzip" "gunzip" "xz") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -189,6 +189,24 @@ viewer_gunzip_process() { return $? } +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +viewer_xz_supports() { + command -v "xz" &> /dev/null || return 1 + [[ -z "$3" ]] || return 1 + + case "$2" in + *.xz) return 0 ;; + esac + + return 1 +} + +viewer_xz_process() { + xz --decompress -k -c "$1" + return $? +} + # ----------------------------------------------------------------------------- # Functions: # -----------------------------------------------------------------------------