summaryrefslogtreecommitdiff
path: root/lsinitramfs
diff options
context:
space:
mode:
authorAn-Cheng Huang <ancheng@vyatta.com>2010-09-09 14:10:39 -0700
committerAn-Cheng Huang <ancheng@vyatta.com>2010-09-09 14:10:39 -0700
commitd000689490bbc3508f18b878757b3d2bb04d8a69 (patch)
tree40388b9f23e75fc4c0884f7fb076f2d6382e1136 /lsinitramfs
parentb9c92a3bb82e860c8368eb7933f5ec4ddcd74bcb (diff)
parent3963c563cf1ea4b1126a4c1949181029a0ff2305 (diff)
downloadinitramfs-tools-d000689490bbc3508f18b878757b3d2bb04d8a69.tar.gz
initramfs-tools-d000689490bbc3508f18b878757b3d2bb04d8a69.zip
Merge remote branch 'debian/master' into upstream
Diffstat (limited to 'lsinitramfs')
-rwxr-xr-xlsinitramfs51
1 files changed, 51 insertions, 0 deletions
diff --git a/lsinitramfs b/lsinitramfs
new file mode 100755
index 0000000..91c65e1
--- /dev/null
+++ b/lsinitramfs
@@ -0,0 +1,51 @@
+#!/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