[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH 5/9] lpt: Hilfsfunktion FindInstalledPackages
+ lpt: Hilfsfunktion FindInstalledPackages die alle momentan
installierten Pakete zusammensucht.
Signed-off-by: Antoine Kaufmann <toni@xxxxxxxxxx>
---
src/modules/pas/lpt/helpers.pas | 43 +++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/src/modules/pas/lpt/helpers.pas b/src/modules/pas/lpt/helpers.pas
index 67b02ed..b8b4cee 100644
--- a/src/modules/pas/lpt/helpers.pas
+++ b/src/modules/pas/lpt/helpers.pas
@@ -16,6 +16,13 @@ procedure Untar(tar: TTarArchive; targetpath: String = 'file:/');
function getArch: String;
procedure mkpath(path: string);
+(**
+ * Installierte Pakete im Paketset pkgset eintragen
+ *
+ * @param pkgset Set in dem die installierten Pakete eingetragen werden
+ *)
+procedure FindInstalledPackages(pkgset: TPackageSet);
+
implementation
resourcestring
@@ -166,5 +173,41 @@ begin
Untar(tar, targetpath);
end;
+(**
+ * Installierte Pakete im Paketset pkgset eintragen
+ *
+ * @param pkgset Set in dem die installierten Pakete eingetragen werden
+ *)
+procedure FindInstalledPackages(pkgset: TPackageSet);
+var
+ prec, vrec, irec: Searchrec;
+ path, pname, pver, pinfo: String;
+begin
+ DosError := 0;
+ dos.FindFirst('file:/packages/*', Directory, prec);
+ while DosError = 0 do begin
+ pname := 'file:/packages/' + prec.name;
+
+ dos.FindFirst(pname + '/*', Directory, vrec);
+ while DosError = 0 do begin
+ pver := pname + '/' + vrec.name;
+
+ dos.FindFirst(pver + '/packageinfo*', Directory, irec);
+ while DosError = 0 do begin
+ pinfo := pver + '/' + irec.name;
+ ScanFile(pkgset, pinfo, '');
+ dos.FindNext(irec);
+ end;
+ dos.FindClose(irec);
+ DosError := 0;
+ dos.FindNext(vrec);
+ end;
+ dos.FindClose(vrec);
+ DosError := 0;
+ dos.FindNext(prec);
+ end;
+ dos.FindClose(prec);
+end;
+
begin
end.
--
1.6.3.3