37class RepositoryManifest
40 std::unique_ptr<MiKTeX::Core::Cfg> cfg;
43 RepositoryManifest() :
49 virtual ~RepositoryManifest()
56 return cfg->GetDigest();
62#if defined(WITH_PACKAGE_DB_SIGNING)
63 bool mustBeSigned =
true;
65 bool mustBeSigned =
false;
67 cfg->Read(path, mustBeSigned);
74 std::string FirstPackage()
77 return keyIt == cfg->end() ?
"" : (*keyIt)->GetName();
81 std::string NextPackage()
84 return keyIt == cfg->end() ?
"" : (*keyIt)->GetName();
95 std::size_t GetArchiveFileSize(
const std::string& packageId)
97 auto val = cfg->GetValue(packageId,
"CabSize");
100 MIKTEX_FATAL_ERROR_2(T_(
"Unknown archive file size."),
"package", packageId);
102 return MiKTeX::Core::Utils::ToSizeT(val->AsString());
108 auto val = cfg->GetValue(packageId,
"CabMD5");
109 if (val ==
nullptr || val->AsString().empty())
111 MIKTEX_FATAL_ERROR_2(T_(
"Unknown archive file digest."),
"package", packageId);
117 std::string GetMinTargetSystemVersion(
const std::string& packageId)
119 auto val = cfg->GetValue(packageId,
"MinTargetSystemVersion");
120 return val ==
nullptr ?
"" : val->AsString();
126 auto val = cfg->GetValue(packageId,
"MD5");
127 if (val ==
nullptr || val->AsString().empty())
129 MIKTEX_FATAL_ERROR_2(T_(
"Unknown package digest."),
"package", packageId);
135 std::time_t GetTimePackaged(
const std::string& packageId)
137 auto val = cfg->GetValue(packageId,
"TimePackaged");
140 MIKTEX_FATAL_ERROR_2(T_(
"Unknown package time-stamp."),
"package", packageId);
142 std::time_t time = MiKTeX::Core::Utils::ToTimeT(val->AsString());
145 MIKTEX_FATAL_ERROR_2(T_(
"Invalid package time-stamp."),
"package", packageId,
"timeStamp", val->AsString());
153 auto val = cfg->GetValue(packageId,
"Level");
154 if (val ==
nullptr || val->AsString().empty())
156 MIKTEX_FATAL_ERROR_2(T_(
"Unknown package level."),
"package", packageId);
158 return CharToPackageLevel(val->AsString()[0]);
162 std::string GetPackageVersion(
const std::string& packageId)
164 auto val = cfg->GetValue(packageId,
"Version");
165 return val ==
nullptr ?
"" : val->AsString();
169 std::string GetPackageTargetSystem(
const std::string& packageId)
171 auto val = cfg->GetValue(packageId,
"TargetSystem");
172 return val ==
nullptr ?
"" : val->AsString();
176 MiKTeX::Archive::ArchiveFileType GetArchiveFileType(
const std::string& packageId)
178 auto val = cfg->GetValue(packageId,
"Type");
179 if (val ==
nullptr || val->AsString().empty() || val->AsString() ==
"MSCab")
181 return MiKTeX::Archive::ArchiveFileType::MSCab;
183 else if (val->AsString() ==
"TarBzip2")
185 return MiKTeX::Archive::ArchiveFileType::TarBzip2;
187 else if (val->AsString() ==
"TarLzma")
189 return MiKTeX::Archive::ArchiveFileType::TarLzma;
193 MIKTEX_FATAL_ERROR_2(T_(
"Unknown archive file type."),
"package", packageId,
"type", val->AsString());
207 MIKTEX_FATAL_ERROR_2(T_(
"Invalid package level."),
"level", std::to_string(ch));