Manager: Handle package list errors

This commit is contained in:
Riyyi
2022-02-02 21:49:05 +01:00
parent 3a10ca3d59
commit 7672180eb7
2 changed files with 18 additions and 7 deletions
+17 -6
View File
@@ -42,7 +42,13 @@ void Package::install()
void Package::list(const std::vector<std::string>& targets)
{
std::string packages = getPackageList();
auto packagesOrEmpty = getPackageList();
if (!packagesOrEmpty.has_value()) {
return;
}
std::string packages = packagesOrEmpty.value();
if (targets.empty()) {
printf("%s", packages.c_str());
@@ -68,11 +74,15 @@ void Package::list(const std::vector<std::string>& targets)
void Package::store()
{
std::string packages = getPackageList();
auto packagesOrEmpty = getPackageList();
if (!packagesOrEmpty.has_value()) {
return;
}
auto packageFile = Util::File::create("./packages");
packageFile.clear();
packageFile.append(packages);
packageFile.append(packagesOrEmpty.value());
packageFile.flush();
}
@@ -210,10 +220,11 @@ bool Package::distroDependencies()
return true;
}
std::string Package::getPackageList()
std::optional<std::string> Package::getPackageList()
{
distroDetect();
distroDependencies();
if (!distroDetect() || !distroDependencies()) {
return {};
}
std::string packages;
+1 -1
View File
@@ -39,7 +39,7 @@ private:
bool findDependency(const std::string& search);
bool distroDetect();
bool distroDependencies();
std::string getPackageList();
std::optional<std::string> getPackageList();
Distro m_distro { Distro::Unsupported };
};