From f9a0b9f8683acf3b35f45f1fdf472ed6409fa004 Mon Sep 17 00:00:00 2001 From: Victor Lowther Date: Fri, 13 Feb 2009 04:41:40 -0800 Subject: [PATCH] [PATCH 04/50] 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 file changed, 9 insertions(+), 12 deletions(-) diff --git a/init b/init index 7b2a9856..78f962ef 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