summaryrefslogtreecommitdiffstats
path: root/defaultenv-2/base/bin/boot
diff options
context:
space:
mode:
Diffstat (limited to 'defaultenv-2/base/bin/boot')
-rw-r--r--defaultenv-2/base/bin/boot67
1 files changed, 37 insertions, 30 deletions
diff --git a/defaultenv-2/base/bin/boot b/defaultenv-2/base/bin/boot
index ebbd95170..f7f460ea0 100644
--- a/defaultenv-2/base/bin/boot
+++ b/defaultenv-2/base/bin/boot
@@ -1,7 +1,10 @@
#!/bin/sh
-verbose=
-dryrun=
+BOOT_BOOTM_OPTS=
+BOOT_DRYRUN=
+BOOT_VERBOSE=
+list=
+bootsrc=${global.boot.default}
usage="
$0 [OPTIONS] [source]\n
@@ -10,49 +13,53 @@ $0 [OPTIONS] [source]\n
-l list boot sources\n
-h help"
-for i in /env/boot/*; do
- basename $i s
- sources="$sources$s "
-done
+. /env/data/ansi-colors
while getopt "vdhl" opt; do
if [ ${opt} = v ]; then
- if [ -n "$verbose" ]; then
- verbose="-v -v"
- else
- verbose="-v"
- fi
+ BOOT_BOOTMOPTS="$BOOT_BOOTMOPTS -v"
+ BOOT_VERBOSE=1
elif [ ${opt} = d ]; then
- dryrun=1
+ BOOT_DRYRUN=1
elif [ ${opt} = l ]; then
- echo -e "boot sources:\n$sources"
- exit 0
+ list=1
elif [ ${opt} = h ]; then
echo -e "$usage"
exit 0
fi
done
-# clear linux.bootargs.dyn.* and bootm.*
-global -r linux.bootargs.dyn.
-global -r bootm.
+if [ -n "$list" ]; then
+ echo "boot sources:"
+ for i in /env/boot/*; do
+ basename $i s
+ echo $s
+ done
+ exit 0
+fi
-if [ $# = 0 ]; then
- scr="$global.boot.default"
-else
- scr="$1"
+if [ -n "$1" ]; then
+ bootsrc="$*"
fi
-if [ -n "$scr" ]; then
- if [ ! -f /env/boot/$scr ]; then
- echo -e "/env/boot/$scr does not exist. Valid choices:\n$sources"
- exit
+export BOOT_BOOTM_OPTS
+export BOOT_DRYRUN
+export BOOT_VERBOSE
+
+for src in $bootsrc; do
+ if [ -d ${src} ]; then
+ realsrc="$realsrc $src/*"
+ else
+ realsrc="$realsrc $src"
fi
- /env/boot/$scr
-fi
+done
-if [ -n "$dryrun" ]; then
- exit 0
+if [ -n "$BOOT_VERBOSE" ]; then
+ echo -e "\nboot sequence:${YELLOW}$realsrc${NC}\n"
fi
-bootm $verbose
+for s in $realsrc; do
+ _boot_list $s
+done
+
+exit $ret