Modify root cmdline parsing to use a case statement.
This code takes less space and is easier to read at a glance.
---
init | 21 +++++++++------------
1 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/init b/init
index 7b2a985..78f962e 100755
--- a/init
+++ b/init
@@ -59,19 +59,16 @@ NEWROOT="/sysroot"
# it'd be nice if we had a udev rule that just did all of the bits for
# figuring out what the specified root is and linking it /dev/root
root=$(getarg 'root=*'); root=${root#root=}
-
echo -n "Going to mount rootfs ($root)"
-if [ -z "$root" ]; then
- echo "Warning: no root specified"
- root="/dev/sda1"
-elif [ "${root#LABEL=}" != $root ]; then
- # FIXME: may need to do more escaping here
- l=${root#LABEL=}
- label=${l//\//\\x2f}
- root="/dev/disk/by-label/${label}"
-elif [ "${root#UUID=}" != $root ]; then
- root="/dev/disk/by-uuid/${root#UUID=}"
-fi
+case $root in
+ LABEL=*) root=${root#LABEL=}
+ root=${root//\//\\x2f}
+ root="/dev/disk/by-label/${root}" ;;
+ UUID=*) root="/dev/disk/by-uuid/${root#UUID=}" ;;
+ '') echo "Warning: no root specified"
+ root="/dev/sda1" ;;
+esac
+
# should we have a timeout?
tries=0
while [ ! -e $root ]; do
--
1.6.0.6
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html