From 85aaf4875d3ca846a64ffd50edcf078f7f6fa154 Mon Sep 17 00:00:00 2001 From: Adam Spiers Date: Thu, 3 Aug 2023 16:49:26 +0100 Subject: [PATCH] batpipe: Add support for gzipped and bzipped tar files This adds support for *.{tgz,tar.gz,tbz,tar.bz2} files. --- src/batpipe.sh | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/batpipe.sh b/src/batpipe.sh index 71bb977..fc22f58 100755 --- a/src/batpipe.sh +++ b/src/batpipe.sh @@ -151,7 +151,7 @@ fi # Viewers: # ----------------------------------------------------------------------------- -BATPIPE_VIEWERS=("exa" "ls" "tar" "unzip" "gunzip" "xz") +BATPIPE_VIEWERS=("exa" "ls" "tar" "tar_gz" "tar_bz2" "unzip" "gunzip" "xz") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -200,16 +200,50 @@ viewer_tar_supports() { viewer_tar_process() { if [[ -n "$2" ]]; then - tar -xf "$1" -O "$2" | bat --file-name="$1/$2" + tar $3 -xf "$1" -O "$2" | bat --file-name="$1/$2" else batpipe_archive_header - tar -tvf "$1" + tar $3 -tvf "$1" return $? fi } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +viewer_tar_gz_supports() { + command -v "tar" &> /dev/null || return 1 + command -v "gzip" &> /dev/null || return 1 + + case "$1" in + *.tar.gz | *.tgz) return 0 ;; + esac + + return 1 +} + +viewer_tar_gz_process() { + viewer_tar_process "$1" "$2" -z +} + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +viewer_tar_bz2_supports() { + command -v "tar" &> /dev/null || return 1 + command -v "bzip2" &> /dev/null || return 1 + + case "$1" in + *.tar.bz2 | *.tbz) return 0 ;; + esac + + return 1 +} + +viewer_tar_bz2_process() { + viewer_tar_process "$1" "$2" -j +} + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + viewer_unzip_supports() { command -v "unzip" &> /dev/null || return 1