52 lines
767 B
Text
52 lines
767 B
Text
|
#!/bin/sh
|
||
|
|
||
|
set -eu
|
||
|
|
||
|
usage()
|
||
|
{
|
||
|
echo "Usage: $(basename $0) <initramfs file>"
|
||
|
}
|
||
|
|
||
|
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
|