|
|
@@ -667,6 +667,42 @@ APT_CONST bool debStatusIndex::Exists() const
|
|
|
}
|
|
|
/*}}}*/
|
|
|
|
|
|
+
|
|
|
+// debDscFileIndex stuff
|
|
|
+debDscFileIndex::debDscFileIndex(std::string &DscFile)
|
|
|
+ : pkgIndexFile(true), DscFile(DscFile)
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+bool debDscFileIndex::Exists() const
|
|
|
+{
|
|
|
+ return FileExists(DscFile);
|
|
|
+}
|
|
|
+
|
|
|
+unsigned long debDscFileIndex::Size() const
|
|
|
+{
|
|
|
+ struct stat buf;
|
|
|
+ if(stat(DscFile.c_str(), &buf) == 0)
|
|
|
+ return buf.st_size;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+// DscFileIndex::CreateSrcParser - Get a parser for the .dsc file /*{{{*/
|
|
|
+// ---------------------------------------------------------------------
|
|
|
+/* */
|
|
|
+pkgSrcRecords::Parser *debDscFileIndex::CreateSrcParser() const
|
|
|
+{
|
|
|
+ if (!FileExists(DscFile))
|
|
|
+ return NULL;
|
|
|
+
|
|
|
+ return new debDscRecordParser(DscFile,this);
|
|
|
+}
|
|
|
+ /*}}}*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// ---------------------------------------------------------------------
|
|
|
// Index File types for Debian /*{{{*/
|
|
|
class debIFTypeSrc : public pkgIndexFile::Type
|
|
|
{
|
|
|
@@ -699,10 +735,22 @@ class debIFTypeStatus : public pkgIndexFile::Type
|
|
|
};
|
|
|
debIFTypeStatus() {Label = "Debian dpkg status file";};
|
|
|
};
|
|
|
+class debIFTypeDscFile : public pkgIndexFile::Type
|
|
|
+{
|
|
|
+ public:
|
|
|
+ virtual pkgSrcRecords::Parser *CreateSrcPkgParser(std::string DscFile) const
|
|
|
+ {
|
|
|
+ return new debDscRecordParser(DscFile, NULL);
|
|
|
+ };
|
|
|
+ debIFTypeDscFile() {Label = "dsc File Source Index";};
|
|
|
+};
|
|
|
+
|
|
|
static debIFTypeSrc _apt_Src;
|
|
|
static debIFTypePkg _apt_Pkg;
|
|
|
static debIFTypeTrans _apt_Trans;
|
|
|
static debIFTypeStatus _apt_Status;
|
|
|
+// file based pseudo indexes
|
|
|
+static debIFTypeDscFile _apt_DscFile;
|
|
|
|
|
|
const pkgIndexFile::Type *debSourcesIndex::GetType() const
|
|
|
{
|
|
|
@@ -720,5 +768,9 @@ const pkgIndexFile::Type *debStatusIndex::GetType() const
|
|
|
{
|
|
|
return &_apt_Status;
|
|
|
}
|
|
|
+const pkgIndexFile::Type *debDscFileIndex::GetType() const
|
|
|
+{
|
|
|
+ return &_apt_DscFile;
|
|
|
+}
|
|
|
|
|
|
/*}}}*/
|