[PATCH v7 2/2] Added Version check in sysupgrade

Steffen Pankratz kratz00 at gmx.de
Di Mär 15 18:38:30 CET 2016


On Mon, 14 Mar 2016 22:39:04 +0100
mayosemmel <mayosemmel at googlemail.com> wrote:

Hi Jan
 
> > > Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
> > > ---
> > >  bsp/default/root_file_system/etc/sysupgrade.sh | 16 ++++++++++++++++
> > >  1 file changed, 16 insertions(+)
> > > 
> > > diff --git a/bsp/default/root_file_system/etc/sysupgrade.sh b/bsp/default/root_file_system/etc/sysupgrade.sh
> > > index a90164d..e2e51c5 100755
> > > --- a/bsp/default/root_file_system/etc/sysupgrade.sh
> > > +++ b/bsp/default/root_file_system/etc/sysupgrade.sh
> > > @@ -15,6 +15,22 @@ VERSION=$(grep -Po '(?<=^VERSION:).*' release.nfo)
> > >  rm -f release.nfo
> > >  echo -ne "Firmware found on server: $VERSION\n"
> > >  
> > > +if [ $VERSION -eq $FIRMWARE_VERSION ]; then
> > > +  echo -ne "The installed firmware version is already the current version.\n\n"
> > > +  echo -ne "Do you want to reinstall the current version? [y/n]\n"
> > > +  read DO_UPDATE
> > > +
> > > +  case $DO_UPDATE in
> > > +    [yY] | [jJ])
> > > +      #nothing to do here
> > > +      : 
> > > +      ;;
> > > +    *)
> > > +      exit 1
> > > +      ;;
> > > +  esac
> > > +fi
> > > +
> > >  FILE="fff-${FIRMWARE_COMMUNITY}_${VERSION}_${BOARD}-sysupgrade.bin"
> > >  echo -ne "Downloading $FILE\n\n"
> > >  wget $(uci get firmware.upgrade.path)/${FILE}  
> > 
> > Warum pruefst du noch auf "jJ"?
> > Ich wuerde im default-Case eher was ausgeben, wie "Invalid input"
> > und nur explizit im "nN"-Case -> "exit 1" aufrufen.
> >   
> Ich habe dies mit Absicht so gelöst, auch wenn es nicht so schön
> aussieht wie dein Vorschlag.
> Ich bin selbst im first Level Support tätig und weiß wie es in der
> Praxis läuft. Da kommen dann so Aussage wie "Ich weiß nicht was ich
> gemacht habe und jetzt ist es kaputt".

Deswegen der Vorschlag dem User zu sagen "Invalid Input".
Du kannst da auch noch eine while-Schleife drum bauen, dass man solange zur Eingabe aufgefordert wird,
bis man eine valide Eingabe getaetigt hat.


> Wenn du nicht explizit mit y|Y(Yes) oder j|J(Ja) antwortest, macht das
> Script einfach nichts.

Ist das bei meinem Vorschlag etwa anders? :p
Mir gefaellt nicht, dass das Skript auch auf "Ja" reagiert.
Das ist fuer mich eine fehlerhafte Eingabe.

> Das vermeidet versehentliches was auch immer.

Pack eine while-Schleife drum und probiere mal die folgende Variante.
Diese Variante greift die Idee von Andreas mit dem "Default-Nein" auf,
welche ich sehr gut finde.
Ich denke mit damit sollte es kein "was auch immer" geben :)

echo -ne "Do you want to reinstall the current version? [y/N]\n"
read DO_UPDATE

case $DO_UPDATE in
    [yY])
        #nothing to do here
        : 
        ;;
    [nN] | "")
        exit 1
        ;;
    *)
        echo "Invalid input"
        ;;
esac


Gruss
-Steffen

-- 
Hermes powered by Manjaro Linux (Linux 4.4.5)

Best regards, Steffen Pankratz.
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 181 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160315/08a525c3/attachment-0002.sig>


Mehr Informationen über die Mailingliste franken-dev