ePyx-online.de Just a moment ;-)

20Dez/090

[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
pfirebuild - Erstellt eine portable U3-Version des Browsers der Mozilla Foundation.

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.

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Kommentar schreiben


Noch keine Trackbacks.