Webupdater schreiben
-
hallo ich schreibe zur zeit einen webserver(SKIPPSerV) dafür benötige ich aber einen updater (dringend da die beta phase bald anlaufen soll)
das programm in der übersicht:
-es soll folgendes können dateien durch neue ersetzen
alte nicht mehr benötigte dateien löschen und neue hinzufügen-so im verzeichnis des updaters befindet sich die release.txt
auf dem server die update.txt
mit jeweiligen inhalt in der form verzeichnis\datei #0.0.1-die verzeichnistruktur ist auf beidenseiten gleich eine datei die sich auf dem server in update\grafik befindet befindet sich beim server in serverroot\grafik
-alle dateien sind auf dem server einzeln vorhanden also müssen nicht aus einem archiv entpackt werden
----------------------------------------------------------------------------
so das mit dem herunterladen der update.txt bekomme ich ja hin
und ich bekomme auch die funktion fürs runterladen(da ist ein anderer für zuständig\ diese erwartet nur als argument den ersten teil der zeile (also den pfad und dateinamen)
aber wie bekomme ich das mit dem vergelich der dateien hin
wenn nicht das löschen und hinzufügen von dateien wäre würde ich das ja noch hinbekommen)aber so habe ich absolut keinen plan
ich sitze nun schon seiten wochen daran aber irgendwie keinen plan davon
hoffe hier hat jemand ne idee dazu?
oder wenn ich glück habe kann mir ja jemand sogar ne beispiel code geben.danke schonmal für die hilfe

-
Skippy schrieb:
aber wie bekomme ich das mit dem vergelich der dateien hin
wenn nicht das löschen und hinzufügen von dateien wäre würde ich das ja noch hinbekommen)was genau is dein problem dabei?
-vergleich von dateien
-löschen von dateien
-hinzufügen von dateienis doch alles recht einfach
-
mein problem ist den datensatz auszulesen und zu verarbeiten,
das andere selbst bekomme ich hinselbst die funktion fürs updaten einer datei habe
ich fertig.
womit ich nicht klarkomme ist die funktion die entscheiden soll was zu tun istHier die 4möglichkeiten
die erste zeile steht für den inhalt der update.txt
die zweite zeile steht für den inhalt der release.txtdaten\foo.dll #0.0.1
daten\foo.dll #0.0.1
(mache nichts)daten\foo.dll #0.0.1
daten\foo.dll #0.0.2
(lade neue version]daten\foo.dll #0.0.1
(erzeuge neue datei)
daten\foo.dll #0.0.3
(lösche datei)mein problem ist ich kann die datensätze nicht einfach zeilenweise verleichen da die zeilennummern unterschiedlich sein können.
ich mus erst vergleichen ob der name in der anderen datei existiert
wenn ja anschließend vergleichen ob die versionsnummer höher ist
-
Kannste dein Script hier dann mal Posten....
Also den Code

-
Skippy schrieb:
ich mus erst vergleichen ob der name in der anderen datei existiert
wenn ja anschließend vergleichen ob die versionsnummer höher istdann machs doch...

-
wie schon 2 mal gesagt ich bekomme es nicht hin
da so wie ich es bisher gemacht habe klappt es nicht:mein bisheriger ansatz:
eine zeile aus update.txt lesen und teilen so das man dateiname und version erhält
so in der release.txt nach der zeile suche die mit dateiname anfängtProblem ich kann so nicht testen ob dateiname in der release.txt steht und in der update.txt nicht um dann diese datei zu löschen
-
Dann mach doch den Schritt den du davor getan hast nochmal genau umgekehrt.
Also die release.txt auslesen und nachsehen, ob die Datei in der update.txt
auch da ist - wenn nicht -> löschen.
-
dazu ne frage:
erstmal wie sieht das dann performance mässig aus wenn ich über tausend dateien in der liste habe bzw wie sore ich dann dafür das er weis welche dateien er schon kontrolliert hat