1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Shell-Script fürn Mac anpassen

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von andyhoff, 13.11.07.

  1. andyhoff

    andyhoff Alkmene

    Dabei seit:
    10.05.07
    Beiträge:
    34
    Hi Leute

    möchte gerne dieses (Linux)Shell-Script für den Mac anpassen ...

    Code:
    
    #!/bin/sh
    URL_FILES="ftp://ftp.gwdg.de/pub/linux/mediaportal/helau/1.2/files"
    URL_FIXES="http://www.htpc-forum.de/gen2vdr/1.2/fixes"
    OPTS="--no-cache "
    MD5_FILE="g2v_md5_files"
    
    
    rm -f $MD5_FILE >/dev/null 2>&1
    wget $OPTS "${URL_FILES}/${MD5_FILE}"
    if [ ! -f $MD5_FILE ] ; then
       OPTS=""
       wget "${URL_FILES}/${MD5_FILE}"
    fi
    
    ARCHS=$(cat $MD5_FILE | cut -f 3 -d " ")
    if [ "${ARCHS}" = "" ] ; then
       echo "Fehler beim Download von ${MD5_FILE}"
       exit -1
    fi
    
    for i in $ARCHS ; do
       WP=""
       if [ "$1" != "-opt" ] && [ "$(echo $i | grep g2v_opt)" != "" ] ; then
          echo "$i wird nicht geladen"
          continue
       fi
       if [ -f ${i} ] ; then
          echo "Pruefe <${i}> ..."
          MD5=$(md5sum ${i} | cut -f 1 -d " ")
          if [ "$(grep ${i} ${MD5_FILE} | grep $MD5)" != "" ] ; then
             continue
          else
             WP="-c "
          fi
       fi
       echo "Lade <${i}> herunter ..."
       wget $OPTS $WP ${URL_FILES}/${i}
       MD5=$(md5sum ${i} | cut -f 1 -d " ")
       if [ "$(grep ${i} ${MD5_FILE} | grep $MD5)" = "" ] ; then
          echo "Fehler beim Download von ${i}"
          if [ -f $i ] ; then
             echo "Nochmaliger Download von ${i} ..."
             rm $i
             wget $OPTS $WP ${URL_FILES}/${i}
             MD5=$(md5sum ${i} | cut -f 1 -d " ")
             
             if [ "$(grep ${i} ${MD5_FILE} | grep $MD5)" = "" ] ; then
                echo "Fehler beim Download von ${i}"
                exit -1
             fi
          else
             exit -1             
          fi
       fi
    done
    
    if [ -f g2v_boot.tar.bz2 ] ; then
       if [ ! -f g2v_boot.tar ] ; then
          bzip2 -d -c g2v_boot.tar.bz2 > g2v_boot.tar
       fi
       tar -xvf g2v_boot.tar
       rm g2v_boot.tar
    fi
    
    if [ -e g2v_inst ] ; then
       rm -rf g2v_inst > /dev/null 2>&1
    fi
    mkdir g2v_inst
    
    if [ -f g2v_inst.tar.bz2 ] ; then
       if [ ! -f g2v_inst.tar ] ; then
          bzip2 -d -c g2v_inst.tar.bz2 > g2v_inst.tar
       fi
       tar -xvf g2v_inst.tar
       rm g2v_inst.tar
    fi
    
    if [ "$1" != "-t" ] ; then
       rm -f g2v_cdupdate.sh > /dev/null 2>&1
       wget $OPTS "${URL_FIXES}/g2v_cdupdate.sh" > /dev/null 2>&1
    else
       URL_FIXES=""
    fi
    
    if [ -f g2v_cdupdate.sh ] ; then
       . ./g2v_cdupdate.sh
    fi
    
    
    Das Script wird benötigt um die nötigen dateien einer Gen2VDR Installation zu saugen.

    Ich bin auf 2Befehle gestossen die so nicht funktionieren/vorhanden sind.

    1. WGET
    WGET lässt sich durch CURL ersetzen, allerdings scheint CURL die option -c (Continue) nicht zu können. Es gibt lediglich ein -C (Continue Offset) aber einen Offset hab ich ja nicht -oder kann ich den einfach weglassen und er sucht sich selber das ende?

    2. MD5SUM
    Wird wohl zum berechnen/überprüfen der MD5Summen benötigt. Hier scheint es beim Mac überhaupt nichts vergleichbares zu geben?

    Würde mich über etwas Hilfe freuen :) damit ich das zum laufen bringe.
    Danke im voraus.
     
  2. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    curl -C sollte automatisch rausfinden wo die Übertragung stehngeblieben war, aber da haperts grad noch bei mir im test..
    Die wget Sachen würde ich durch curl -O ersetzen.
    Und das OPTS oben muss leer sein, --no-cache kennt curl nicht.

    Und
    Code:
    MD5=$(md5sum ${i} | cut -f 1 -d " ")
    mit
    Code:
    MD5=$(md5 ${i} | cut -f 4 -d " ")
    ersetzen, damit sollten der md5 Check auch funktionieren..
     
    #2 zeno, 13.11.07
    Zuletzt bearbeitet: 13.11.07
  3. andyhoff

    andyhoff Alkmene

    Dabei seit:
    10.05.07
    Beiträge:
    34
    Hy zeno

    schnelle Antwort ;)

    Die MD5 sachen bringen mich doch schonmal weiter .. DANKE

    Ja -O bzw. --remote-name habe ich schon gefunden.
    Stimmt ein --no-cache gibt es nicht, aber ein --no-buffer sollte das selbe sein .. oder?

    Habe alles in OPTS eingebaut zusätzlich noch --progress-bar.
    Schaut jetzt so aus -> OPTS="--no-buffer --remote-name --progress-bar "

    Werde die -C Option heut Abend mal antesten.
     
  4. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Alternativ kann man natürlich auch wget von Source oder per fink oder per MacPorts installieren. Bezüglich md5sum sollte es auch genügen einen alias(1) von md5sum auf md5 zu machen.
    Gruß Pepi
     
  5. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    Ich habs jetzt mit dem obengenannten Änderungen mal durchlaufen lassen, funktioniert ohne Probleme, nur denke ich bei neuladen der Datei, da muss noch nachgebessert werden. Aber download, md5, entpacken, läuft ;)
     
  6. andyhoff

    andyhoff Alkmene

    Dabei seit:
    10.05.07
    Beiträge:
    34
    Ja läuft soweit .. aber

    am Ende bekomme ich folgende Meldungen im Terminal ..
    Code:
    g2v_prep.sh: line 10: wget: command not found
    g2v_prep.sh: line 13: wget: command not found
    cat: g2v_md5_fixes: No such file or directory
    
    Die letzte Zeile wird wohl normal sein es gibt halt keine fixes?
    Aber die beiden anderen Zeilen verwirren mich etwas, ich habe das ganze Skript ein paarmal durch und kann kein 'wget' mehr finden??

    Code:
    
    #!/bin/sh
    URL_FILES="ftp://ftp.gwdg.de/pub/linux/mediaportal/helau/1.2/files"
    URL_FIXES="http://www.htpc-forum.de/gen2vdr/1.2/fixes"
    OPTS="--no-buffer --remote-name --progress-bar "
    MD5_FILE="g2v_md5_files"
    
    
    rm -f $MD5_FILE >/dev/null 2>&1
    curl $OPTS "${URL_FILES}/${MD5_FILE}"
    if [ ! -f $MD5_FILE ] ; then
       OPTS=""
       curl "${URL_FILES}/${MD5_FILE}"
    fi
    
    ARCHS=$(cat $MD5_FILE | cut -f 3 -d " ")
    if [ "${ARCHS}" = "" ] ; then
       echo "Fehler beim Download von ${MD5_FILE}"
       exit -1
    fi
    
    for i in $ARCHS ; do
       WP=""
       if [ "$1" != "-opt" ] && [ "$(echo $i | grep g2v_opt)" != "" ] ; then
          echo "$i wird nicht geladen"
          continue
       fi
       if [ -f ${i} ] ; then
          echo "Pruefe <${i}> ..."
          MD5=$(md5 ${i} | cut -f 4 -d " ")
          if [ "$(grep ${i} ${MD5_FILE} | grep $MD5)" != "" ] ; then
             continue
          else
             WP="-C "
          fi
       fi
       echo "Lade <${i}> herunter ..."
       curl $OPTS $WP ${URL_FILES}/${i}
       MD5=$(md5 ${i} | cut -f 4 -d " ")
       if [ "$(grep ${i} ${MD5_FILE} | grep $MD5)" = "" ] ; then
          echo "Fehler beim Download von ${i}"
          if [ -f $i ] ; then
             echo "Nochmaliger Download von ${i} ..."
             rm $i
             curl $OPTS $WP ${URL_FILES}/${i}
             MD5=$(md5 ${i} | cut -f 4 -d " ")
             
             if [ "$(grep ${i} ${MD5_FILE} | grep $MD5)" = "" ] ; then
                echo "Fehler beim Download von ${i}"
                exit -1
             fi
          else
             exit -1             
          fi
       fi
    done
    
    if [ -f g2v_boot.tar.bz2 ] ; then
       if [ ! -f g2v_boot.tar ] ; then
          bzip2 -d -c g2v_boot.tar.bz2 > g2v_boot.tar
       fi
       tar -xvf g2v_boot.tar
       rm g2v_boot.tar
    fi
    
    if [ -e g2v_inst ] ; then
       rm -rf g2v_inst > /dev/null 2>&1
    fi
    mkdir g2v_inst
    
    if [ -f g2v_inst.tar.bz2 ] ; then
       if [ ! -f g2v_inst.tar ] ; then
          bzip2 -d -c g2v_inst.tar.bz2 > g2v_inst.tar
       fi
       tar -xvf g2v_inst.tar
       rm g2v_inst.tar
    fi
    
    if [ "$1" != "-t" ] ; then
       rm -f g2v_cdupdate.sh > /dev/null 2>&1
       curl $OPTS "${URL_FIXES}/g2v_cdupdate.sh" > /dev/null 2>&1
    else
       URL_FIXES=""
    fi
    
    if [ -f g2v_cdupdate.sh ] ; then
       . ./g2v_cdupdate.sh
    fi
    
    
    Was habe ich übersehen? wo kommen die beiden wget's her?
     
  7. delycs

    delycs Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    13.09.06
    Beiträge:
    245
    Hab jetzt nur mal durchgeschaut und denk die einfachste Lösung ist sich "wget" per Fink oder MacPorts zu organisieren.
    In der letzten Anweisung im Script wird ein weiteres SH-Script aufgerufen, welches wohl auch vom Server stammt. Dort drin steht an besagten Stellen (line 10 & 13) ein "wget".

    Habs aber nicht ausprobiert sondern nur mal überflogen. könnte also daran liegen.
     
  8. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    anstatt wget würde ich wget pro nehmen, also wpro.
     
  9. andyhoff

    andyhoff Alkmene

    Dabei seit:
    10.05.07
    Beiträge:
    34
    Warum? und noch wichtiger woher?
    Was kann wpro besser?

    Fragen über fragen ...
     

Diese Seite empfehlen