From a39db63500c4482aad7d2fc17ad83edd3a56bb8f Mon Sep 17 00:00:00 2001 From: maximilian attems Date: Wed, 16 Jun 2010 17:12:53 +0200 Subject: Add lsinitramfs to initramfs-tools useful script to quickly look into initramfs for debugger or bug reporter, inspired by similar dracut tool. Signed-off-by: maximilian attems --- lsinitramfs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 lsinitramfs (limited to 'lsinitramfs') diff --git a/lsinitramfs b/lsinitramfs new file mode 100755 index 0000000..aea7747 --- /dev/null +++ b/lsinitramfs @@ -0,0 +1,14 @@ +#!/bin/sh + +usage() +{ + echo "Usage: $(basename $0) " + exit 1 +} + +[ $# -eq 0 ] && usage + +for i in $*; do + echo $i + zcat $i | cpio --extract --verbose --quiet --list +done -- cgit v1.2.3 From ecb8416d5ede3e5eae463802721c2a12216b61a4 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Thu, 17 Jun 2010 01:49:09 +0200 Subject: lsinitramfs: be more defensive against cmdline options * make sure the specified file(s) can be read * redirect error message to stderr * support -h/--help option * variable quoting Signed-off-by: Michael Prokop --- lsinitramfs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'lsinitramfs') diff --git a/lsinitramfs b/lsinitramfs index aea7747..809445f 100755 --- a/lsinitramfs +++ b/lsinitramfs @@ -3,12 +3,24 @@ usage() { echo "Usage: $(basename $0) " - exit 1 } -[ $# -eq 0 ] && usage +if [ "$#" -eq 0 ] ; then + usage >&2 + exit 1 +fi + +if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then + usage + exit 0 +fi -for i in $*; do - echo $i - zcat $i | cpio --extract --verbose --quiet --list +for i in "$*" ; do + if ! [ -r "$i" ] ; then + echo "Specified file could not be read." >&2 + exit 1 + else + echo "$i" + zcat "$i" | cpio --extract --verbose --quiet --list + fi done -- cgit v1.2.3 From 969f8fdc8561869dfc600ed6bc5cd892df3c130e Mon Sep 17 00:00:00 2001 From: maximilian attems Date: Thu, 17 Jun 2010 11:45:30 +0200 Subject: lsinitramfs: set errexit and nounset better protect it from the start as have the pain later.. Signed-off-by: maximilian attems --- lsinitramfs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lsinitramfs') diff --git a/lsinitramfs b/lsinitramfs index 809445f..3f67381 100755 --- a/lsinitramfs +++ b/lsinitramfs @@ -1,5 +1,7 @@ #!/bin/sh +set -eu + usage() { echo "Usage: $(basename $0) " -- cgit v1.2.3 From fafede51c3adca9f70bdb1bbe629db9aba35be85 Mon Sep 17 00:00:00 2001 From: maximilian attems Date: Thu, 17 Jun 2010 11:52:20 +0200 Subject: lsinitramfs: allow to pass several filenames due to the quoting use $@ to expand to several arguments. Signed-off-by: maximilian attems --- lsinitramfs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lsinitramfs') diff --git a/lsinitramfs b/lsinitramfs index 3f67381..e395de8 100755 --- a/lsinitramfs +++ b/lsinitramfs @@ -17,7 +17,7 @@ if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then exit 0 fi -for i in "$*" ; do +for i in "$@" ; do if ! [ -r "$i" ] ; then echo "Specified file could not be read." >&2 exit 1 -- cgit v1.2.3 From 2f3eb88faf2ac21036d4b33e5f44c9be076a635a Mon Sep 17 00:00:00 2001 From: maximilian attems Date: Fri, 18 Jun 2010 11:36:26 +0200 Subject: lsinitramfs: use getopt for -l option only pass verbose to cpio if invoked with -l or --long. add minimal hints to manpage. Signed-off-by: maximilian attems --- lsinitramfs | 39 +++++++++++++++++++++++++++++++-------- lsinitramfs.8 | 2 ++ 2 files changed, 33 insertions(+), 8 deletions(-) (limited to 'lsinitramfs') diff --git a/lsinitramfs b/lsinitramfs index e395de8..3fcc50c 100755 --- a/lsinitramfs +++ b/lsinitramfs @@ -12,17 +12,40 @@ if [ "$#" -eq 0 ] ; then exit 1 fi -if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then - usage - exit 0 -fi +cpio_args="--extract --quiet --list" + +OPTIONS=`getopt -o hl --long help,long -n "$0" -- "$@"` +# Check for non-GNU getopt +if [ $? != 0 ] ; then echo "Terminating..." >&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 i in "$@" ; do - if ! [ -r "$i" ] ; then +for initramfs in "$@" ; do + if ! [ -r "${initramfs}" ] ; then echo "Specified file could not be read." >&2 exit 1 else - echo "$i" - zcat "$i" | cpio --extract --verbose --quiet --list + echo "${initramfs}" + zcat "${initramfs}" | cpio ${cpio_args} fi done diff --git a/lsinitramfs.8 b/lsinitramfs.8 index bb809ae..c1aa897 100644 --- a/lsinitramfs.8 +++ b/lsinitramfs.8 @@ -5,7 +5,9 @@ lsinitramfs \- list content of an initramfs image .SH SYNOPSIS .B lsinitramfs +.RB [ \-l ] .IR initramfsfile +.RB [ \-h ] .SH DESCRIPTION The -- cgit v1.2.3 From e967b03f31e784e8a8a6189c5de5d7b0e6b9bb56 Mon Sep 17 00:00:00 2001 From: maximilian attems Date: Fri, 18 Jun 2010 12:23:37 +0200 Subject: mkinitramfs, lsinitramfs: Better error message for non-GNU getopt Reported-by: Michael Prokop Signed-off-by: maximilian attems --- lsinitramfs | 2 +- mkinitramfs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lsinitramfs') diff --git a/lsinitramfs b/lsinitramfs index 3fcc50c..91c65e1 100755 --- a/lsinitramfs +++ b/lsinitramfs @@ -16,7 +16,7 @@ cpio_args="--extract --quiet --list" OPTIONS=`getopt -o hl --long help,long -n "$0" -- "$@"` # Check for non-GNU getopt -if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi +if [ $? != 0 ] ; then echo "W: non-GNU getopt" >&2 ; exit 1 ; fi eval set -- "$OPTIONS" diff --git a/mkinitramfs b/mkinitramfs index 9af5bfd..e49e01c 100755 --- a/mkinitramfs +++ b/mkinitramfs @@ -14,7 +14,7 @@ export BUSYBOXDIR OPTIONS=`getopt -o c:d:ko:r:v -n "$0" -- "$@"` # Check for non-GNU getopt -if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi +if [ $? != 0 ] ; then echo "W: non-GNU getopt" >&2 ; exit 1 ; fi eval set -- "$OPTIONS" -- cgit v1.2.3