From: Harald Hoyer Date: Tue, 15 Mar 2011 18:49:13 +0000 (+0100) Subject: lsinitrd: cope with xz and lzma compressed images X-Git-Tag: 009~52 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=66fe35eb3e6102026c8b6b07de468c80016a7fa7;p=thirdparty%2Fdracut.git lsinitrd: cope with xz and lzma compressed images --- diff --git a/lsinitrd b/lsinitrd index 7e9df9eb0..6e2d82b8f 100755 --- a/lsinitrd +++ b/lsinitrd @@ -22,14 +22,25 @@ [[ $# -eq 1 || $# -eq 2 ]] || { echo "Usage: $(basename $0) []" ; exit 1 ; } [[ -f $1 ]] || { echo "$1 does not exist" ; exit 1 ; } +CAT=zcat +FILE_T=$(file $1) + +if [[ "$FILE_T" =~ ": gzip compressed data" ]]; then + CAT=zcat +elif [[ "$FILE_T" =~ ": xz compressed data" ]]; then + CAT=xzcat +elif [[ "$FILE_T" =~ ": data" ]]; then + CAT=lzcat +fi + if [[ $# -eq 2 ]]; then - zcat $1 | cpio --extract --verbose --quiet --to-stdout ${2#/} 2>/dev/null + $CAT $1 | cpio --extract --verbose --quiet --to-stdout ${2#/} 2>/dev/null exit $? fi echo "$1:" echo "========================================================================" -zcat $1 | cpio --extract --verbose --quiet --to-stdout 'dracut-*' 2>/dev/null +$CAT $1 | cpio --extract --verbose --quiet --to-stdout 'dracut-*' 2>/dev/null echo "========================================================================" -zcat $1 | cpio --extract --verbose --quiet --list +$CAT $1 | cpio --extract --verbose --quiet --list echo "========================================================================"