[PATCH 1/4] defaultenv/boot: switch to getopt
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Fri Apr 8 09:40:05 EDT 2011
this will allow to add more option to overwrite the boot type
as today can only choose mode {nfs, tftp, nand, nor} and can not specify
where is each component the kernel, the rootfs and the rootfs type
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
defaultenv/bin/boot | 20 ++++++++++++++++----
defaultenv/bin/boot_help | 29 +++++++++++++++++++++++++++++
2 files changed, 45 insertions(+), 4 deletions(-)
create mode 100644 defaultenv/bin/boot_help
diff --git a/defaultenv/bin/boot b/defaultenv/bin/boot
index de4fa24..4289b29 100644
--- a/defaultenv/bin/boot
+++ b/defaultenv/bin/boot
@@ -2,16 +2,28 @@
. /env/config
-if [ x$1 = xnand ]; then
+opt_mode=""
+
+while getopt "hm:" Option
+do
+if [ ${Option} = m ]; then
+ opt_mode=${OPTARG}
+else
+ . /env/bin/boot_help
+ exit 0
+fi
+done
+
+if [ x${opt_mode} = xnand ]; then
rootfs_loc=nand
kernel_loc=nand
-elif [ x$1 = xnor ]; then
+elif [ x${opt_mode} = xnor ]; then
rootfs_loc=nor
kernel_loc=nor
-elif [ x$1 = xnfs ]; then
+elif [ x${opt_mode} = xnfs ]; then
rootfs_loc=net
kernel_loc=nfs
-elif [ x$1 = xtftp ]; then
+elif [ x${opt_mode} = xtftp ]; then
rootfs_loc=net
kernel_loc=tftp
fi
diff --git a/defaultenv/bin/boot_help b/defaultenv/bin/boot_help
new file mode 100644
index 0000000..425c718
--- /dev/null
+++ b/defaultenv/bin/boot_help
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+echo "usage: boot [-m <mode>]"
+echo "boot."
+echo ""
+echo "options"
+echo " -m boot mode will select kernel_loc and rootfs_loc"
+echo " mode kernel_loc rootfs_loc"
+echo " nfs nfs nfs"
+echo " tftp tftp nfs"
+echo " nor nor nor"
+echo " nand nand nand"
+echo ""
+echo "default is"
+echo -n "kernel_loc "
+echo ${kernel_loc}
+echo -n "kernelimage_type "
+echo ${kernelimage_type}
+echo -n "rootfs_loc "
+echo ${rootfs_loc}
+echo -n "rootfs_type "
+echo ${rootfs_type}
+echo -n "ip "
+if [ x${ip} = x ]
+then
+ echo "static"
+else
+ echo ${ip}
+fi
--
1.7.4.1
More information about the barebox
mailing list