X-Git-Url: http://git.ozlabs.org/?p=yaboot.git;a=blobdiff_plain;f=ybin%2Fybin;h=a3d94d1a83434cbb6808a3cbe8865e77fffddfc7;hp=f9da7db7140382a3214ddea745708abb494d7673;hb=ad8f878934b10bf3baba4eb82073244932c2c4a2;hpb=8a48f4329821baf8bb91028bdd854dcbadfeb182 diff --git a/ybin/ybin b/ybin/ybin index f9da7db..a3d94d1 100755 --- a/ybin/ybin +++ b/ybin/ybin @@ -27,8 +27,9 @@ if [ -n "$PATH_PREFIX" ] ; then PATH="${PATH}:${PATH_PREFIX}/sbin:${PATH_PREFIX}/bin:${PATH_PREFIX}/usr/sbin:${PATH_PREFIX}/usr/bin:${PATH_PREFIX}/usr/local/sbin:${PATH_PREFIX}/usr/local/bin" fi PRG="${0##*/}" +ABSPRG="$0" SIGINT="$PRG: Interrupt caught ... exiting" -VERSION=1.3.11-UNRELEASED_UNSUPPORTED +VERSION=1.3.13 DEBUG=0 VERBOSE=0 TMP="${TMPDIR:-/tmp}" @@ -462,6 +463,10 @@ checkconf() echo 1>&2 "$PRG: /dev/nvram: Permission denied" echo 1>&2 "$PRG: Warning: nvram will not be updated" nonvram=1 + elif ! (dd if=/dev/nvram of=/dev/null bs=1 count=10 > /dev/null 2>&1) ; then + echo 1>&2 "$PRG: /dev/nvram: No such device" + echo 1>&2 "$PRG: Warning: nvram will not be updated" + nonvram=1 else nonvram=1 echo 1>&2 "$PRG: Warning: Incompatible version of \`nvsetenv', nvram will not be updated" @@ -1332,19 +1337,26 @@ if [ $# != 0 ] ; then ;; --debug) DEBUG=1 + ARGS="$ARGS $1" shift ;; -v|--verbose) VERBOSE=1 + ARGS="$ARGS $1" shift ;; -f|--force) FORCE=yes + ARGS="$ARGS $1" shift ;; -b|--boot) if [ -n "$2" ] ; then - boot="$2" + if [ "$boot" = "unconfigured" ]; then + boot="$2" + else + boot="$boot $2" + fi ARGBT=1 shift 2 else @@ -1357,6 +1369,7 @@ if [ $# != 0 ] ; then if [ -n "$2" ] ; then ofboot="$2" ARGOB=1 + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1368,6 +1381,7 @@ if [ $# != 0 ] ; then if [ -n "$2" ] ; then install="$2" ARGBF=1 + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1380,6 +1394,7 @@ if [ $# != 0 ] ; then CONF="$2" bootconf="$2" ERR=" Error in $CONF:" + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1391,6 +1406,7 @@ if [ $# != 0 ] ; then if [ -n "$2" ] ; then magicboot="$2" ARGWP=1 + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1402,6 +1418,7 @@ if [ $# != 0 ] ; then if [ -n "$2" ] ; then fstype="$2" ARGFS=1 + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1412,26 +1429,31 @@ if [ $# != 0 ] ; then --nobless) bless=no ARGBS=1 + ARGS="$ARGS $1" shift ;; -M|--mount) usemount=yes ARGMT=1 + ARGS="$ARGS $1" shift ;; --protect) protect=yes ARGPT=1 + ARGS="$ARGS $1" shift ;; --hide) hide=yes ARGHD=1 + ARGS="$ARGS $1" shift ;; --nonvram) nonvram=1 ARGNV=1 + ARGS="$ARGS $1" shift ;; --device) @@ -1439,6 +1461,7 @@ if [ $# != 0 ] ; then device="$2" bootconf=auto echo 1>&2 "$PRG: WARNING: Deprecated option --device" + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1451,6 +1474,7 @@ if [ $# != 0 ] ; then timeout="$2" bootconf=auto echo 1>&2 "$PRG: WARNING: Deprecated option --device" + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1463,6 +1487,7 @@ if [ $# != 0 ] ; then image="$2" bootconf=auto echo 1>&2 "$PRG: WARNING: Deprecated option --device" + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1475,6 +1500,7 @@ if [ $# != 0 ] ; then label="$2" bootconf=auto echo 1>&2 "$PRG: WARNING: Deprecated option --device" + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1487,6 +1513,7 @@ if [ $# != 0 ] ; then partition="$2" bootconf=auto echo 1>&2 "$PRG: WARNING: Deprecated option --device" + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1499,6 +1526,7 @@ if [ $# != 0 ] ; then root="$2" bootconf=auto echo 1>&2 "$PRG: WARNING: Deprecated option --device" + ARGS="$ARGS $1 $2" shift 2 else echo 1>&2 "$PRG: option requires an argument $1" @@ -1578,6 +1606,20 @@ fi [ $(parseconf flag enableofboot) = 0 ] && of=yes [ $(parseconf flag brokenosx) = 0 ] && brokenosx=yes +bootparts=0 +for i in $boot; do + bootparts=$(($bootparts + 1)) +done +if [ "$bootparts" -gt 1 ]; then + [ "$VERBOSE" = 1 ] && echo "$PRG: Iterating through list of boot partitions..." + rc=0 + for i in $boot; do + [ "$VERBOSE" = 1 ] && echo "$ABSPRG $ARGS -b $i" + $ABSPRG $ARGS -b $i || rc=$? + done + exit $rc +fi + ## ffs!! rtfm! foad! if [ "$boot" = unconfigured ] ; then echo 1>&2 "$PRG: You must specify the device for the bootstrap partition. (ie: boot=/dev/hdaX)"