extended list and search and test arch commands in same way as unpack, to handle...
authorChris Koeritz <fred@gruntose.com>
Mon, 30 Mar 2015 20:51:04 +0000 (16:51 -0400)
committerChris Koeritz <fred@gruntose.com>
Mon, 30 Mar 2015 20:51:04 +0000 (16:51 -0400)
scripts/archival/list_arch.sh
scripts/archival/test_arch.sh

index eba1fc8f4e4fa7afc76227d866b63a45414228ab..2d5b6b1b79baeebb872c72f33b56765b5efc083a 100644 (file)
@@ -47,6 +47,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 +58,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 +66,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
+
index be1fddb4d101443412917f56ab03b092fc73c056..1a37be2bfdb8f499ad33cf382fd24709af9fade5 100644 (file)
@@ -37,6 +37,7 @@ if [ ! -f "$archive_file" ]; then
   fi
 fi
 
+save_err=1
 if [[ $archive_file =~ .*\.tar$ \
     || $archive_file =~ .*\.tar\.gz$ \
     || $archive_file =~ .*\.tar\.bz2$ \
@@ -47,6 +48,7 @@ if [[ $archive_file =~ .*\.tar$ \
     || $archive_file =~ .*\.snarf$ \
     ]]; then
   tar -tf $archive_file &>/dev/null
+  save_err=$?
 elif [[ $archive_file =~ .*\.zip$ \
     || $archive_file =~ .*\.epub$ \
     || $archive_file =~ .*\.odt$ \
@@ -54,12 +56,16 @@ elif [[ $archive_file =~ .*\.zip$ \
     || $archive_file =~ .*\.war$ \
     ]]; then
   unzip -t $archive_file &>/dev/null
-else
-  # we don't know this as an archive.
-  exit 0
+  save_err=$?
+elif [[ "$archive_file" =~ .*\.7z$ ]]; then
+  7z t "$archive_file" &>/dev/null
+  save_err=$?
+elif [[ "$archive_file" =~ .*\.rar$ ]]; then
+  rar t "$archive_file" &>/dev/null
+  save_err=$?
 fi
 
-if [ $? -ne 0 ]; then
+if [ $save_err -ne 0 ]; then
   echo "** failure while testing: $archive_file"
   exit 1
 else