diff options
| author | Julian Andres Klode <julian.klode@canonical.com> | 2025-01-27 15:50:42 +0100 |
|---|---|---|
| committer | Julian Andres Klode <julian.klode@canonical.com> | 2025-01-28 19:47:00 +0100 |
| commit | e13ee75d4b20ee94e8da1b7f2be61788029b6875 (patch) | |
| tree | dce11bdc985010c51aa16998ee0145cedc325dcb /apt-pkg | |
| parent | d9f7d2c37023d186be4a21a4d714e032be48e315 (diff) | |
metaindex: Support loading without filename
Diffstat (limited to 'apt-pkg')
| -rw-r--r-- | apt-pkg/metaindex.cc | 13 | ||||
| -rw-r--r-- | apt-pkg/metaindex.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/apt-pkg/metaindex.cc b/apt-pkg/metaindex.cc index f3df9b159..10c93de15 100644 --- a/apt-pkg/metaindex.cc +++ b/apt-pkg/metaindex.cc @@ -1,6 +1,7 @@ // Include Files /*{{{*/ #include <config.h> +#include <apt-pkg/fileutl.h> #include <apt-pkg/indexfile.h> #include <apt-pkg/metaindex.h> #include <apt-pkg/pkgcachegen.h> @@ -151,3 +152,15 @@ bool metaIndex::HasSupportForComponent(std::string const &) const/*{{{*/ return true; } /*}}}*/ +bool metaIndex::Load(std::string *ErrorText) /*{{{*/ +{ + auto debmeta = dynamic_cast<debReleaseIndex *>(this); + if (not debmeta) + return false; + if (auto f = debmeta->MetaIndexFile("InRelease"); FileExists(f)) + return Load(f, ErrorText); + if (auto f = debmeta->MetaIndexFile("Release"); FileExists(f)) + return Load(f, ErrorText); + return false; +} + /*}}}*/ diff --git a/apt-pkg/metaindex.h b/apt-pkg/metaindex.h index e2a773c31..198c3f34a 100644 --- a/apt-pkg/metaindex.h +++ b/apt-pkg/metaindex.h @@ -96,6 +96,7 @@ public: virtual std::vector<pkgIndexFile *> *GetIndexFiles() = 0; virtual bool IsTrusted() const = 0; virtual bool Load(std::string const &Filename, std::string * const ErrorText) = 0; + bool Load(std::string *const ErrorText); /** @return a new metaIndex object based on this one, but without information from #Load */ virtual metaIndex * UnloadedClone() const = 0; // the given metaIndex is potentially invalid after this call and should be deleted |
