• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Shell-Script fürn Mac anpassen

andyhoff

Alkmene
Registriert
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.
 

zeno

Lane's Prinz Albert
Registriert
05.11.05
Beiträge
4.894
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..
 
Zuletzt bearbeitet:

andyhoff

Alkmene
Registriert
10.05.07
Beiträge
34
Hy zeno

schnelle Antwort ;)

Die MD5 sachen bringen mich doch schonmal weiter .. DANKE

Die wget Sachen würde ich durch curl -O ersetzen.
Und das OPTS oben muss leer sein, --no-cache kennt curl nicht.

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.
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
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
 

zeno

Lane's Prinz Albert
Registriert
05.11.05
Beiträge
4.894
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 ;)
 

andyhoff

Alkmene
Registriert
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?
 

delycs

Weigelts Zinszahler (Rotfranch)
Registriert
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.
 

Bier

Pomme au Mors
Registriert
24.08.07
Beiträge
867
anstatt wget würde ich wget pro nehmen, also wpro.