[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [tyndur-devel] [PATCH] Lokale Pakete für lpt
Am Sonntag, 3. Mai 2009 00:37 schrieb Alexander Siol:
> [tyndur-devel] [PATCH] Lokale Pakete für lpt
> Von:
> Alexander Siol <alex@xxxxxxxxxx>
> An:
> tyndur-devel@xxxxxxxxxx
> Datum:
> Heute 00:37:29
>
> Die Nachricht wurde signiert auf 03.05.2009 00:37 mit dem unbekannten
> Schlüssel 0x24DA9F8993DCC28E. Die Gültigkeit der Signatur kann nicht
> überprüft werden.
> Status: Kein öffentlicher Schlüssel zur Überprüfung der Signatur vorhanden
> Siehe Betreff ;) test via lpt install [pfad_zum_paket]
> Paket muss Metadaten enthalten, siehe entsprechenden lbuilds-Patch
>
> --
> Alexander Siol
> alex@xxxxxxxxxx
> dunklermeuchler@xxxxxxxxx
>
> diff --git a/trunk/src/modules/pas/lpt/lpt.pas
> b/trunk/src/modules/pas/lpt/lpt.pas index 1da6527..1edbf33 100644
> --- a/trunk/src/modules/pas/lpt/lpt.pas
> +++ b/trunk/src/modules/pas/lpt/lpt.pas
> @@ -116,10 +116,11 @@ end;
>
> procedure PrintUsage;
> begin
> - WriteLn('Aufruf: lpt [scan|list|get <Paket>]');
> - WriteLn(' scan: Lädt die Paketlisten von den Servern');
> - WriteLn(' list: Zeigt alle installierten Pakete an');
> - WriteLn(' get: Installiert das angegebene Paket');
> + WriteLn(' Aufruf: lpt [scan|list|get <Paket>]');
Das "Aufruf" gehört linksbündig, das gehört nicht mit den einzelnen Befehlen
auf eine Ebene. Und install sollte rein.
> + WriteLn(' scan: Lädt die Paketlisten von den Servern');
> + WriteLn(' list: Zeigt alle installierten Pakete an');
> + WriteLn(' get: Installiert das angegebene Paket');
Leerzeichen zu viel. Ich hätte auch die Befehle linksbündig gelassen, aber das
ist wohl Geschmackssache.
> + WriteLn('install: Installiert ein Paket aus lokaler Datei');
> end;
>
> procedure Scan;
> @@ -191,6 +192,53 @@ begin
> end;
> end;
>
> +procedure Install(pkgfile: String; reinstall: boolean);
> +var
> + temp_path, pkgname, pkgversion, pkgsection, pkgarch: String;
> + packageinfo: Text;
> + packageinfo_file: File;
> + archive: TTarArchive;
> +begin
> + mkpath('file:/tmp/');
> + temp_path := 'file:/tmp/packageinfo-'+pkgfile;
> + archive := TTarArchive.create(pkgfile);
> + while archive.hasNext do begin
> + if archive.NextFilename = 'packageinfo' then begin
> + Assign(packageinfo_file, temp_path);
> + Rewrite(packageinfo_file, 1);
> + archive.ExtractFile(packageinfo_file);
> + Close(packageinfo_file);
> + break;
> + end;
> + end;
> + Assign(packageinfo, temp_path);
> + Reset(packageinfo);
> + ReadLn(packageinfo, pkgname);
> + ReadLn(packageinfo, pkgversion);
> + ReadLn(packageinfo, pkgsection);
> + ReadLn(packageinfo, pkgarch);
> + Close(packageinfo);
> +
> + // ggf. irgendwie Abhängigkeiten prüfen?
> +
> + // Installieren
> + temp_path := 'file:/packages/' + pkgname + '/' + pkgversion + '/' +
> + pkgsection + '/';
> + if FileExists(temp_path) and not reinstall then begin
> + TextColor(15);
> + WriteLn('Bereits installiert: ' + pkgname + '/' + pkgsection);
> + TextColor(7);
> + exit;
> + end;
> + Untar(pkgfile);
> + temp_path := 'file:/packages/' + pkgname + '/' +
> + pkgversion + '/postinstall-' + pkgsection;
> + if FileExists(temp_path) then begin
> + WriteLn('Richte ' + pkgname + '/' + pkgsection + ' ein');
> + exec(temp_path, '');
> + end;
> +end;
Begeisterungsstürme löst dieser Code nicht aus, riecht dafür etwas zu sehr
nach Duplikation. Aber bevor man das vernünftig macht (was etwas mehr
Umbauarbeiten erfordert), können wir es so machen.
> +
> procedure Get(pkgname: String; reinstall: boolean);
>
>
> @@ -402,6 +450,13 @@ begin
> WriteLn('Falsche Parameterzahl');
> PrintUsage;
> end;
> + end else if system.ParamStr(1) = 'install' then begin
> + if system.ParamCount = 2 then begin
> + Install(system.ParamStr(2), false);
> + end else begin
> + WriteLn('Falsche Parameterzahl');
> + PrintUsage;
> + end;
Wenn install() schon einen zweiten Parameter hat, wie wäre es noch mit einem
reinstall?
> end else if system.ParamStr(1) = 'reget' then begin
> if system.ParamCount = 2 then begin
> Get(system.ParamStr(2), true);
>
> Ende der signierten Nachricht
> _______________________________________________
> tyndur-devel mailing list
> tyndur-devel@xxxxxxxxxx
> http://list.tyndur.org/mailman/listinfo/tyndur-devel