X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Farchival%2Flist_arch.sh;h=82e6fb7ecdb5a19708ceadf3380b534d4975c409;hb=48816a455552c8d29c29e52e9e861c4be1b8120f;hp=eba1fc8f4e4fa7afc76227d866b63a45414228ab;hpb=dfe6c3aedd3487a00acf94683163be7ed0baa6da;p=feisty_meow.git diff --git a/scripts/archival/list_arch.sh b/scripts/archival/list_arch.sh index eba1fc8f..82e6fb7e 100644 --- a/scripts/archival/list_arch.sh +++ b/scripts/archival/list_arch.sh @@ -13,6 +13,8 @@ # An arbitrary format archive lister, although really we are mainly supporting # tar and zip currently, including compressed formats. +source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" + archive_file="$1"; shift if [ -z "$archive_file" ]; then echo "This script takes one archive name (in .tar.gz, .zip, etc. formats) and" @@ -25,9 +27,9 @@ if [ ! -f "$archive_file" ]; then fi if [ -z "$PAGER" ]; then - PAGER=$(which less) + PAGER=$(whichable less) if [ -z "$PAGER" ]; then - PAGER=$(which more) + PAGER=$(whichable more) if [ -z "$PAGER" ]; then PAGER="cat" fi @@ -47,6 +49,7 @@ if [ ! -f "$archive_file" ]; then fi fi +save_err=1 if [[ $archive_file =~ .*\.tar$ \ || $archive_file =~ .*\.tar\.gz$ \ || $archive_file =~ .*\.tar\.bz2$ \ @@ -57,6 +60,7 @@ if [[ $archive_file =~ .*\.tar$ \ || $archive_file =~ .*\.snarf$ \ ]]; then tar -tf $archive_file | $PAGER + save_err=${PIPESTATUS[0]} elif [[ $archive_file =~ .*\.zip$ \ || $archive_file =~ .*\.epub$ \ || $archive_file =~ .*\.odt$ \ @@ -64,4 +68,17 @@ elif [[ $archive_file =~ .*\.zip$ \ || $archive_file =~ .*\.war$ \ ]]; then unzip -v $archive_file | $PAGER + save_err=${PIPESTATUS[0]} +elif [[ "$archive_file" =~ .*\.7z$ ]]; then + 7z l "$archive_file" | $PAGER + save_err=${PIPESTATUS[0]} +elif [[ "$archive_file" =~ .*\.rar$ ]]; then + rar l "$archive_file" | $PAGER + save_err=${PIPESTATUS[0]} fi + +if [ $save_err -ne 0 ]; then + echo "There was a failure reported while listing: $archive_file" + exit 1 +fi +