52 lines
767 B
Bash
Executable File
52 lines
767 B
Bash
Executable File
#!/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
|