From f7bf1d328206e62c334b82936b110703b59a1b6f Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Thu, 19 Sep 2013 11:55:58 +0200 Subject: [PATCH] HaikuDepot: Add UninstallPackageAction class. Not yet used. --- src/apps/haiku-depot/PackageManager.cpp | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/apps/haiku-depot/PackageManager.cpp b/src/apps/haiku-depot/PackageManager.cpp index acab1d1001..9308c971f9 100644 --- a/src/apps/haiku-depot/PackageManager.cpp +++ b/src/apps/haiku-depot/PackageManager.cpp @@ -89,6 +89,42 @@ public: }; +// #pragma mark - UninstallPackageAction + + +class UninstallPackageAction : public PackageAction { +public: + UninstallPackageAction(const PackageInfo& package, PackageManager* manager) + : + PackageAction(package, manager) + { + } + + virtual const char* Label() const + { + return B_TRANSLATE("Uninstall"); + } + + virtual status_t Perform() + { + const char* packageName = Package().Title().String(); + try { + fPackageManager->Uninstall(&packageName, 1); + } catch (BFatalErrorException ex) { + fprintf(stderr, "Fatal error occurred while uninstalling package " + "%s: %s (%s)\n", packageName, ex.Message().String(), + ex.Details().String()); + return ex.Error(); + } catch (BException ex) { + fprintf(stderr, "Exception occurred while uninstalling package " + "%s: %s\n", packageName, ex.Message().String()); + } + + return B_OK; + } +}; + + // #pragma mark - PackageManager