#!/bin/sh set -eu usage() { echo "Usage: $(basename $0) " } if [ "$#" -eq 0 ] ; then usage >&2 exit 1 fi cpio_args="--extract --quiet --list" OPTIONS=`getopt -o hl --long help,long -n "$0" -- "$@"` # Check for non-GNU getopt if [ $? != 0 ] ; then echo "W: non-GNU getopt" >&2 ; exit 1 ; fi eval set -- "$OPTIONS" while true; do case "$1" in -h|--help) usage exit 0 ;; -l|--long) cpio_args="${cpio_args:+${cpio_args} --verbose}" shift ;; --) shift break ;; *) echo "Internal error!" >&2 exit 1 esac done for initramfs in "$@" ; do if ! [ -r "${initramfs}" ] ; then echo "Specified file could not be read." >&2 exit 1 else echo "${initramfs}" zcat "${initramfs}" | cpio ${cpio_args} fi done