Updater Creator - Garados007/IlarosLauncher GitHub Wiki

Zweck

Der Endnutzer lädt nur eine ausführbare Datei herunter. Diese lädt dann den Rest herunter. Doch irgendwie muss dieses Programm wissen, auf welchem Server sich alle Daten befinden und wie man mit diesem kommuniziert. Da gäbe es die Variante, dass man diese Informationen hart im Quellcode verankert. Doch das müsste dann der Serverbetreiber vornehmen und bei jeder Änderung der Servereinstellungne müsste dieser das neu machen. Aus Sicherheitsgründen soll aber der Serverbetreiber nicht am Quellcode rumfuschen und die Informationen sollen auch nicht auf GitHub erscheinen.

Dann gäbe es eine Variante, dass man dies als extra Datei mitliefert, damit das Downloadprogramm dies runterladen kann. Dafür müsste man aber wieder ZIP-Archive verwenden, was aber auch wieder einen Nachteil hat. Die meisten Nutzer packen diese ZIP-Archive nicht aus, sondern starten einfach das Programm daraus. Die meisten ZIP-Programm entpacken da nur die Programmdatei und der Rest bleibt unberüht, was zu Fehlern führt. Von daher ist das auch nicht die richtige Wahl.

Bei dieser Lösung gibt es ein Programm, den Updater Creator, in welchem man alle Servereinstellungen einträgt. Diese werden dann zusammengefasst, überprüft und schließlich wird eine einzelne Datei erzeugt. Diese Datei ist dann der eigentliche Updater/ Installer und kann somit direkt an den Endnutzer weitergegeben werden. Dieser muss dann nur noch die Datei starten und der Rest startet von selbst.

Aufbau

Überblick über das Programm

Servertyp

Im Oberen Teil kann man den Servertyp auswählen. Je nach Servertyp wird intern eine andere Schnittstelle erweitert. Je nach gewählter Art varieren die Art der anderen Angaben. Aktuell gibt es nur eine Variante.

Servertyp Beschreibung
Apache PHP Server mit ilweb.php Version 1.0 (Standard) Bei dieser Variante befindet sich ein spezielles Script auf einem Apache-Webserver. Das Script kann in einem beliebigen Ordner gesteckt sein, aber alle anderen Pfade sind relativ dazu angelegt. Vorteile an dieser Variante sind die automatische Versionsverwaltung und ein eingebauter Bilddienst. Außerdem stellt es die Daten für Launcher und Updater bereit.

Scripturl

Hier wird der komplett Pfad zum Script angegeben. Das Präfix http:\\ ist nicht zwingermaßen notwendig, da es standardmäßig verwendet wird. Außerdem dürfen keine GET-Parameter über ? angegeben sein.

Zur Überprüfung kann man den Link überprüfen lassen. Da wird auch gleich ermittelt, ob nicht nur das Script erreichbar ist, sondern auch mit dem Updater Creator kompatibel.

Hintergrundquelle

Bei dem Launcher gibt es ständig wechselnde Hintergründe. Diese werden alle aus einer zentralen Bildquelle bezogen und beim Endnutzer zwischengespeichert.

Quelltyp Beschreibung
Direkt am Serverscript Alle Bilder befinden sich direkt beim Serverscript und werden auch direkt darüber bezogen. Vorteil: Man hat alle Daten für den Launcher zusammen und die Namensgebung der Bilder ist irrelevant.
Externe Quelle (Zugriffe über Anzahl) Hier werden die Bilder von einer anderen Quelle als der des Serverscripts bezogen. Für die Namen der Bilder wird ein spezielles Format verlangt. Vorteil: Saubere Trennung zwischen Launcherdaten und Hintergründen

Anzahllink

Wird nur bei der externen Bildquelle verwendet.

Hier gibt man den kompletten Link an, der nur eine Zahl zurückliefert, wie viele Bilder verfügbar sind. Der Launcher vergleicht diese Zahl mit seiner eigenen und entscheidet dann danach, ob es noch weitere Bider existieren. Der Link kann GET-Parameter über ? enthalten

Dateilink

Wird nur bei der externen Bildquelle verwendet.

Hier wird der komplett Link zu den Bilddateien angegeben. Der Name des Bildes selber wird auch mit angegeben und an der Stelle, wo dann die Nummer des Bildes steht, wird ein {0} eingefügt. Der Launcher ersetzt dann dieses Symbol durch die jeweilige Bildnummer und versucht es dann herunterzuladen. Der Link kann auch GET-Parameter über ? enthalten und {0} kann auch darin enthalten sein.

Will man festlegen, dass eine bestimmte Anzahl an Ziffern fest sind (da steht bei kleineren Zahlen eine 0), so kann man dies direkt im Marker {0} mittels # und 0 angeben. Dabei steht 0 für eine feste und # für eine optionale Stelle.

Marker Beispiele Beschreibung
{0} 0 1 10 100 Die Zahlen sehen kann normal aus.
{0:#00} 00 01 10 100 Die letzten zwei Ziffern müssen immer dastehen. Stehen mehr zur Verfügung, so werden diese auch ausgegeben.
{0:#000} 000 001 010 100 Die letzten drei Ziffern müssen immer dastehen. Stehen mehr zur Verfügung, so werden diese auch ausgegeben.
{0:#0000} 0000 0001 0010 0100 Die letzten vier Ziffern müssen immer dastehen. Stehen mehr zur Verfügung, so werden diese auch ausgegeben.
{0:00} 00 01 10 00 Nur die letzten zwei Ziffern werden ausgegeben. Stehen mehr zur Verfügung, so wird abgeschnitten. Steht weniger zur Verfügung, so wird link mit 0 aufgefüllt.
{0:#,#0} 0 1 10 100 1.000 Es wird nun ein Tausenderpunkt eingefügt. Auch Punkte für Millionen etc. werden eingefügt.

Mehr Informationen dazu hier unter MSDN.

Speicherordner

Hier wird der Ordner angegeben, in der der neu erzeugte Updater abgespeichert wird.

BUILD

Wenn alle Angaben getätigt sind, so baut der Updater Creator einen Updater zusammen und legt ihn an den angegebenen Ort ab. Es wird nicht dahingehend überprüft, ob alle getätigten Angaben korrekt oder die angegeben Server zugreifbar sind. Gegebenfalls funktioniert dann der Updater nicht.

Der fertige Updater kann dann an den Endnutzern verteilt werden. Sie müssen diesen nur noch starten und können dann ohne Probleme den Ilaros Launcher installieren.

Datenhaltung

Die Daten müssen jedes Mal neu in den Updater Creator eingegeben werden. Sobald der Updater erzeugt wurde, so befinden sich die Daten direkt eingebettet in dem Updater drin und können auch von außen nicht mehr bearbeitet werden (Einsehen ist nur unter Aufwand möglich). Der Updater verbindet sich direkt mit dem Server und lädt dann den kompletten Installer von dort runter und gibt die Konfigurationen direkt weiter. Der Installer funktioniert nur, wenn Konfigurationen übergeben wurden und löscht diese auch sofort wieder. Beim Installieren werden die Konfigurationen zusammen mit weiteren Launcherdaten zusammengepackt und sind somit nicht mehr ohne weiteres vom Endnutzer einseh- oder änderbar.

Somit erhalten Launcher und Installer ihre Daten direkt von diesen Updater. Ändern lassen sich diese Informationen nur, wenn ein neuer Updater erzeugt wird, der dann den alten ersetzt. So wird dann beim nächsten richtigen Update der neue Updater heruntergeladen und Launcher und Installer bekommen ihre Daten.