Manager: Handle package list errors
This commit is contained in:
+17
-6
@@ -42,7 +42,13 @@ void Package::install()
|
|||||||
|
|
||||||
void Package::list(const std::vector<std::string>& targets)
|
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()) {
|
if (targets.empty()) {
|
||||||
printf("%s", packages.c_str());
|
printf("%s", packages.c_str());
|
||||||
@@ -68,11 +74,15 @@ void Package::list(const std::vector<std::string>& targets)
|
|||||||
|
|
||||||
void Package::store()
|
void Package::store()
|
||||||
{
|
{
|
||||||
std::string packages = getPackageList();
|
auto packagesOrEmpty = getPackageList();
|
||||||
|
|
||||||
|
if (!packagesOrEmpty.has_value()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
auto packageFile = Util::File::create("./packages");
|
auto packageFile = Util::File::create("./packages");
|
||||||
packageFile.clear();
|
packageFile.clear();
|
||||||
packageFile.append(packages);
|
packageFile.append(packagesOrEmpty.value());
|
||||||
packageFile.flush();
|
packageFile.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,10 +220,11 @@ bool Package::distroDependencies()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Package::getPackageList()
|
std::optional<std::string> Package::getPackageList()
|
||||||
{
|
{
|
||||||
distroDetect();
|
if (!distroDetect() || !distroDependencies()) {
|
||||||
distroDependencies();
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
std::string packages;
|
std::string packages;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ private:
|
|||||||
bool findDependency(const std::string& search);
|
bool findDependency(const std::string& search);
|
||||||
bool distroDetect();
|
bool distroDetect();
|
||||||
bool distroDependencies();
|
bool distroDependencies();
|
||||||
std::string getPackageList();
|
std::optional<std::string> getPackageList();
|
||||||
|
|
||||||
Distro m_distro { Distro::Unsupported };
|
Distro m_distro { Distro::Unsupported };
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user