[BASH] U3 Version von Firefox erstellen
So wie versprochen hier das BASH-Skript um unter Linux eine portable Version von Firefox zu erstellen. Das Ganze ist relativ einfach und benötigt nur das jeweilige 7-Zip Paket für die gewählte Distribution und wget für den Download. Wget sollte eigentlich bei jeder ernstzunehmenden Distribution beiliegen und bereits installiert sein.
In Zeile 17 muss dann nur der Ort für die Resourcen (Loader, Icon usw) angegeben werden.
1 | SrcDir="/home/epyx/Dokumente/PortableApps/Firefox" |
Nach dem das Skript mit chmod ausführbar gemacht wurde, wird mit der Übergabe der gewünschten Release-Nummer automatisch alles herunter geladen, entpackt und für eine U3-Version manipuliert. Das war es dann auch schon, und im gleichen Verzeichnis sollte eine U3-Version zu finden sein.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | #!/bin/bash ###### ## pfirebuild.sh ## Author : Daniel Kotschate ## Site : http://www.epyx-online.de ## Last modified : 2009-02-08 19:35:28 ## ## Functions : Download an create a U3P Package of Mozilla Firefox ###### Version=$1 ## Global ADIR=`pwd` Author="Daniel Kotschate" CDIR=$ADIR"/pbuild" SrcDir="/home/epyx/Dokumente/PortableApps/Firefox" ###### ## Erstellt Ordnerstruktur für U3-Paket ###### function createDirStructure () { mkdir $CDIR mkdir $CDIR"/Data" mkdir $CDIR"/Data/ProfilOrdner" mkdir $CDIR"/Host" mkdir $CDIR"/Manifest" } ###### ## Bestimmt entpackte Größe für das Manifest ###### function getSize () { DIRSIZE=`du -s $1 | awk '{print $1}'` let DIRSIZE=DIRSIZE/1024 return $DIRSIZE } ###### ## Herunterladen der Setupdatei ###### function downloadFF () { local url="http://www.mirrorspace.org/mozilla/firefox/releases/"$Version"/win32/de/Firefox%20Setup%20"$Version".exe" wget -c -nv $url 2> /dev/null >/dev/null } ###### ## Erstellen des U3-Manifests ###### function buildManifest () { getSize $ADIR"/pbuild" cd $CDIR"/Manifest" echo "<u3manifest version=\"1.0\">" >> manifest.u3i echo " <application uuid=\"F455A360-9F51-44DD-B5F0-DF85A47DD160\" version=\""$Version"\">" >> manifest.u3i echo " <icon>FirefoxLoad.ico</icon>" >> manifest.u3i echo " <name>Portable Firefox</name>" >> manifest.u3i echo " <vendor url=\"www.epyx-online.de\">Daniel Kotschate</vendor>" >> manifest.u3i echo " <description>Portable FireFox" $Version "deutsch, von " $Author "</description>" >> manifest.u3i echo " <options>" >> manifest.u3i echo " <minfreespace>$DIRSIZE</minfreespace>" >> manifest.u3i echo " </options>" >> manifest.u3i echo " <i18n></i18n>" >> manifest.u3i echo " </application>" >> manifest.u3i echo " <actions>" >> manifest.u3i echo " <appstart cmd=\"%U3_APP_DATA_PATH%\FireLoad.exe\"></appstart>" >> manifest.u3i echo " <appstop cmd=\"%U3_HOST_EXEC_PATH%\appstop.exe\"> -t -s FireLoad</appstop>" >> manifest.u3i echo " <hostcleanup cmd=\"%U3_HOST_EXEC_PATH%\appstop.exe\"> -t -s FireLoad</hostcleanup>" >> manifest.u3i echo " </actions>" >> manifest.u3i echo "</u3manifest>" >> manifest.u3i } ###### ## Manipulieren der Daten und einfügen des Loaders etc ###### function buildContent () { 7za x Firefox\ Setup\ $Version.exe >/dev/null cd localized cp -Rf * ../nonlocalized/ cd .. rm -rf localized optional removed-files.log setup.exe Firefox\ Setup\ $Version.exe mv nonlocalized/ Firefox cp $SrcDir"/appstop.exe" $CDIR"/Host" cp $SrcDir"/FireLoad.exe" $CDIR"/Data" cp $SrcDir"/FirefoxLoad.ico" $CDIR"/Manifest" } ###### ## Komprimieren des U3-Pakets ###### function buildPackage () { cd $CDIR 7za a -tzip Portable_Firefox_$Version.u3p Data/ Host/ Manifest/ >/dev/null } ###### ## Aufräumen ###### function cleanall() { mv Portable_Firefox_$Version.u3p $ADIR cd $ADIR rm -rf pbuild } ###### ## Hauptprogramm ###### if test "$Version" == "" ; then echo "usage : pfirebuild.sh Version" echo "example : pfirebuild.sh 3.0.6" exit else echo "---Erstelle Ordnerstruktur---" createDirStructure cd $CDIR"/Data/" echo "-------Starte Download-------" downloadFF echo "---------Entpacke------------" buildContent echo "------Erstelle Manifest------" buildManifest echo "-------Erzeuge Archiv--------" buildPackage cleanall echo "Portable_Firefox_$Version.u3p erstellt!" fi |
So das ist es dann wirklich gewesen, aber bedenkt, dass ich keinerlei Garantie für die korrekte Funktionsweise übernehme und auch für eventuelle Schäden nicht hafte.