11 #include <RADCore/RADCore.h>
89 const std::string& targetRoot,
const std::vector<std::string>& selectedComponents = {},
95 const std::vector<std::string>& installedFiles, std::string* error =
nullptr);
Success-or-error return value for APIs that should not throw.
Definition: RADCore.h:158
Manifest-driven installer engine with rollback and uninstall manifest support.
Definition: RADInstaller.h:83
static Result uninstall(const std::string &uninstallManifestPath, ProgressCallback progress={})
Uninstalls files recorded in uninstallManifestPath.
static Result install(const Manifest &manifest, const std::string &sourceRoot, const std::string &targetRoot, const std::vector< std::string > &selectedComponents={}, ProgressCallback progress={})
Installs selected components from sourceRoot to targetRoot.
static RADCore::RADResult< Manifest > loadManifest(const std::string &path)
Loads a manifest from JSON.
static bool writeUninstallManifest(const std::string &path, const Manifest &manifest, const std::vector< std::string > &installedFiles, std::string *error=nullptr)
Writes an uninstall manifest for installed files.
Definition: RADInstaller.h:17
std::function< void(int, const std::string &)> ProgressCallback
Progress callback receiving 0..100 percentage and status text.
Definition: RADInstaller.h:80
Installable component from a manifest.
Definition: RADInstaller.h:42
std::string name
Display name.
Definition: RADInstaller.h:46
std::vector< FileEntry > files
Files in this component.
Definition: RADInstaller.h:50
bool defaultSelected
Whether the component is selected by default.
Definition: RADInstaller.h:48
std::string id
Stable component id.
Definition: RADInstaller.h:44
Optional desktop entry created by the installer.
Definition: RADInstaller.h:30
std::string exec
Executable command.
Definition: RADInstaller.h:36
std::string categories
Category string.
Definition: RADInstaller.h:38
std::string fileName
Launcher file name.
Definition: RADInstaller.h:32
std::string name
Display name.
Definition: RADInstaller.h:34
One file copied by the installer.
Definition: RADInstaller.h:20
std::string source
Source path relative to package root.
Definition: RADInstaller.h:22
std::string destination
Destination path relative to install root.
Definition: RADInstaller.h:24
std::string checksum
Optional file checksum. Use "fnv1a64:<hex>" or a raw FNV-1a 64-bit hex string.
Definition: RADInstaller.h:26
Installer manifest loaded from radinstall.json.
Definition: RADInstaller.h:54
std::vector< DesktopEntry > desktopEntries
Desktop entries to create.
Definition: RADInstaller.h:66
std::string productName
Product name.
Definition: RADInstaller.h:56
std::string publisher
Publisher name.
Definition: RADInstaller.h:60
std::string license
License text or path.
Definition: RADInstaller.h:62
std::string version
Product version.
Definition: RADInstaller.h:58
std::vector< Component > components
Installable components.
Definition: RADInstaller.h:64
Installer result.
Definition: RADInstaller.h:70
std::vector< std::string > installedFiles
Installed file paths.
Definition: RADInstaller.h:76
std::string error
Error message on failure.
Definition: RADInstaller.h:74
bool ok
True on success.
Definition: RADInstaller.h:72