Thread (11 messages) 11 messages, 3 authors, 2012-09-01

Re: [PATCH 5/5] defaultenv-2: add boot sequence

From: Roberto Nibali <hidden>
Date: 2012-08-24 07:37:17

Hi
quoted hunk ↗ jump to hunk
diff --git a/defaultenv-2/base/bin/boot b/defaultenv-2/base/bin/boot
index 103eb87..ade555d 100644
--- a/defaultenv-2/base/bin/boot
+++ b/defaultenv-2/base/bin/boot
@@ -2,20 +2,39 @@

 verbose=
 dryrun=
+sequence=

 usage="
 $0 [OPTIONS] [source]\n
  -v  verbose\n
  -d  dryrun\n
  -l  list boot sources\n
+ -s  start boot sequence in /env/boot.d/\n
  -h  help"

+if [ ${global.allow_color} = "true" ]; then
+       . /env/data/ansi-colors
+       ECHO=-e
+fi
Since you seem to be using global.allow_color in other places as well,
wouldn't it be advisable to move the whole if-block into
/env/data/ansi-colors and subsequently just source it whenever a hush
script needs it?

Also why not generally use $ECHO in scripts, however along the lines
of (inside /env/data/ansi-colors/):

if [ ${global.allow_color} = "true" ]; then
   # color definitions
   ECHO = "echo -e"
else
   ECHO = "echo"
fi

You then only invoke $ECHO instead of 'echo $ECHO'.
quoted hunk ↗ jump to hunk
 for i in /env/boot/*; do
        basename $i s
        sources="$sources$s "
 done

-while getopt "vdhl" opt; do
+if [ -d /env/boot.d ]; then
+       sources="$sources\nboot sequence:"
+       for i in /env/boot.d/*; do
+               readlink -f $i s
+               basename $s link
+               basename $i s
+               sources="$sources\n $s -> $link"
+       done
+else
+       sources="$sources\nboot sequence:\nnone"
+fi
+
+while getopt "vdhls" opt; do
        if [ ${opt} = v ]; then
                if [ -n "$verbose" ]; then
                        verbose="-v -v"
@@ -23,7 +42,9 @@ while getopt "vdhl" opt; do
                        verbose="-v"
                fi
        elif [ ${opt} = d ]; then
-               dryrun=1
+               dryrun="-d"
Why this change?
quoted hunk ↗ jump to hunk
+       elif [ ${opt} = s ]; then
+               sequence=1
        elif [ ${opt} = l ]; then
                echo -e "boot sources:\n$sources"
                exit 0
@@ -43,12 +64,33 @@ else
        scr="$1"
 fi

+if [ -n "$sequence" -o "x$src" = "xseq" ]; then
+       if [ ! -d /env/boot.d ]; then
+               echo ${ECHO} "${GREEN}boot sequence ${RED}none${NC}"
+               exit 1
+       fi
+       echo ${ECHO} "${GREEN}Start boot sequence${NC}"
+       for i in /env/boot.d/*; do
+               readlink -f $i s
+               basename $s link
+               basename $i s
+               msg="${GREEN}boot${NC} ${YELLOW}${s}${NC} -> ${CYAN}${link}${NC}"
+               echo ${ECHO} "${msg}"
+               boot $dryrun $s
+               echo ${ECHO} "${msg} ${RED}failled${NC}"
+               ret=$?
+       done
+       echo ${ECHO} "${GREEN}boot sequence ${RED}failled${NC}"
+       exit $ret
+fi
+
 if [ -n "$scr" ]; then
-       if [ ! -f /env/boot/$scr ]; then
-               echo -e "/env/boot/$scr does not exist.Valid choices:\n$sources"
+       if [ ! -f /env/boot.d/$scr -a ! -f /env/boot/$scr ]; then
+               echo -e "/env/boot/$scr or /env/boot.d/$scr does not exist.Valid choices:\n$sources"
                exit
        fi
-       /env/boot/$scr
+       [ -f /env/boot.d/$scr ] && /env/boot.d/$scr
+       [ -f /env/boot/$scr ] && /env/boot/$scr
 fi

 if [ -n "$dryrun" ]; then
diff --git a/defaultenv-2/base/init/general b/defaultenv-2/base/init/general
index 98a92d1..2c0bd74 100644
--- a/defaultenv-2/base/init/general
+++ b/defaultenv-2/base/init/general
@@ -11,5 +11,5 @@ global.user=sha
 # timeout in seconds before the default boot entry is started
 global.autoboot_timeout=3

-# default boot entry (one of /env/boot/*)
+# default boot entry (one of /env/boot/*) or seq to start the sequence
 global.boot.default=net
--
1.7.10.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help