summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/metaindex.cc13
-rw-r--r--apt-pkg/metaindex.h1
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