Fabian St.: Zip-Abbild von src.selfhtml.org - Verbesserungsvorschlag

Beitrag lesen

Hi Candid!

Perfekt wäre es natürlich, das ganze per ftp oder rsync zur Verfügung zu stellen. Dann könnte man das zum Beispiel einmal im Monat automatisch auf dem lokalen Rechner aktualisieren lassen, falls sich mal was ändert. Dann bräuchten die Devs auch nicht immer die Zip-Datei neu packen. Aber das ist sehr umständlich, also könnte nicht mal jemand ein kleines Shellscript schreiben, das aufgrund der Last-Modified-Header überprüft, ob sich die Zipdatei geändert hat und diese dann in ein bestimmtes Verzeichnis entpackt? :-)

Ich habe da mal gerade was gebastelt:

--------------------------------------------------------------------------------------------------
#!/bin/bash

Variablen Deklaration

FILE="http://aktuell.de.selfhtml.org/extras/src.zip"
if [ -z $1 ]; then
    DESTDIR="$HOME/selfhtml/"
    if [ ! -d $DESTDIR ]
        mkdir $DESTDIR
    fi
else
    DESTDIR=$1
fi
MATCH="kein Download."

echo ''
echo "Ueberpruefe auf neuere Version von $FILE ...."
echo ''

wget -N $FILE &> temp.dat

RESULT=$(cat temp.dat | grep 'kein Download' | awk '{print $13" "$14}')

if [[ $RESULT == $MATCH ]]; then
    echo 'Datei auf dem Server ist gleich!'
else
    echo "Es gibt eine neuere Version. Ich entpacke sie nach $DESTDIR!"
    if [ ! -d $DESTDIR ]; then
        mkdir $DESTDIR
    elif [ -d $DESTDIR ]; then
        echo 'Es existiert bereits eine alte Version. Ich loesche sie daher!'
        cd $DESTDIR
        rm *
        cd -
    fi
    /usr/bin/unzip -d $DESTDIR src.zip
    echo ''
    echo 'OK, das waere erledigt. Ich beende mich!'
fi

rm temp.dat
echo ''

exit 0
--------------------------------------------------------------------------------------------------

Der interessanteste Teil ist wohl das «wget -N», das eine Datei nur herunterlädt, wenn deren Timestamp neuer als die gleichnamige, lokale Datei ist. Daraus ergibt sich jedoch gleichzeitig die Einschränkung, dass das Zip-Archiv auch nach dem Entpacken existieren muss.

Die Benutzung des Programms ist eigentlich ganz einfach:

  • in eine Datei kopieren, diese ausführbar machen (chmod u+x fetch)
  • als Parameter den absoluten Pfad des Verzeichnisses angeben, in der die Datei entpackt werden soll; wird kein Parameter angegeben, wird das Verzeichnis selfhtml im Home-Ordner des aktuellen Benutzers gewählt und angelegt, wenn es dieses nicht bereits gibt

Für mögliche Verbesserungen stehe ich offen ;-) Insbesondere die Überprüfung mittels grep und awk, ob es eine neue Version gibt, ist nicht besonders schön und setzt auch voraus, dass die Konsole deutsch spricht.

Grüße,
Fabian St.

0 76

ich will mehr user-js und user-css haben! (zahle aber nix)

Felix Riesterer
  • zu diesem forum
  1. 0
    Ingo Turski
    1. 0
      Jeena Paradies
      1. 0
        Dennis
        1. 0
          Ashura
          1. 0

            IDEE

            Felix Riesterer
            1. 0
              Ingo Turski
  2. 0
    Stonie
    1. -1
      Ludger
      1. 0
        Ludger
        1. 0
          Felix Riesterer
    2. 0
      Dennis
      1. 0
        Stonie
  3. 4
    Gravenreuth
    1. 0
      fastix®
      1. 0
        fastix®
      2. 0
        Alexander Brock
    2. 0

      Zip-Abbild von src.selfhtml.org

      Candid Dauth
      1. 0
        Christian Seiler
        1. 2

          Zip-Abbild von src.selfhtml.org - Verbesserungsvorschlag

          fastix®
          1. 3
            Ingo Turski
          2. 0
            Candid Dauth
            1. 2
              Fabian St.
          3. 1
            Alexander Brock
            1. 0
              Christian Seiler
              1. 0
                Alexander Brock
                1. 0
                  Orlando
                  1. 0
                    Alexander Brock
                    1. 0
                      Dennis
                      1. 0
                        Alexander Brock
                        1. 1
                          Jeena Paradies
                          1. 0
                            Alexander Brock
                            1. 0

                              erriechbar

                              Felix Riesterer
                              • menschelei
                              1. 0
                                Alexander Brock
                                1. 0
                                  Dennis
                            2. 2
                              Sven Rautenberg
                            3. 0
                              at
                        2. 4
                          Dennis
                          1. 0
                            Alexander Brock
                            1. 2
                              Fabian St.
                              1. 0
                                Alexander Brock
                                1. 1
                                  Fabian St.
                                  1. 1
                                    Jeena Paradies
                                    1. 0
                                      Alexander Brock
                                      1. 0
                                        Ashura
                                        1. 0
                                          Alexander Brock
                                          1. 0
                                            Ashura
                                            1. 0
                                              Alexander Brock
                                              1. 0
                                                Ashura
                                                1. 0
                                                  Alexander Brock
                                    2. 0
                                      Der Martin
                                      1. 0
                                        Alexander Brock
                                        1. 0
                                          at
                                          1. 0
                                            Der Martin
                                            1. 0
                                              at
                                            2. -1
                                              Candid Dauth
                                              1. 0
                                                Christian Seiler
                                                1. 0
                                                  Der Martin
                                                  1. 0
                                                    Candid Dauth
                                              2. 0
                                                Der Martin
                                                1. 0
                                                  Christian Seiler
                                                  1. 0
                                                    Der Martin
                                                    1. 0
                                                      Ingo Turski
                                    3. 0
                                      at
                        3. 0
                          Alexander Brock
                          1. 0
                            Dennis
                          2. 0
                            Orlando
                            1. 0
                              Alexander Brock
                        4. 0
                          Alexander Brock
                  2. 0
                    Candid Dauth
                    1. 0
                      Orlando
          4. 1
            Christian Seiler
            1. 0
              Alexander Brock
    3. 0
      Ashura
      1. 0
        Alexander Brock
        1. 0
          Ashura