From a5b66592ad7e26d6748d5d492f02d7296baaaf14 Mon Sep 17 00:00:00 2001 From: Joris Goosen Date: Tue, 11 Jun 2024 14:15:04 +0200 Subject: [PATCH] rewrite scary construction in DynamicModule::generateModuleInstallingR --- Desktop/modules/dynamicmodule.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Desktop/modules/dynamicmodule.cpp b/Desktop/modules/dynamicmodule.cpp index a19e721016..5dcd7190fa 100644 --- a/Desktop/modules/dynamicmodule.cpp +++ b/Desktop/modules/dynamicmodule.cpp @@ -428,9 +428,24 @@ std::string DynamicModule::generateModuleInstallingR(bool onlyModPkg) return "stop('Something went wrong during intialization of the Description!\nMake sure it follows the standard set in https://github.com/jasp-stats/jasp-desktop/blob/development/Docs/development/jasp-adding-module.md#descriptionqml\n')"; } setInstallLog("Installing module " + _name + ".\n"); - return "tmp <- .libPaths(); .libPaths(\"" + AppDirs::bundledModulesDir().toStdString() + "Tools/jaspModuleInstaller_library" + "\"); Sys.setenv(MODULE_INSTALL_MODE=\"localizeModuleOnly\");options(\"renv.config.install.verbose\" = TRUE, \"PKGDEPENDS_LIBRARY\"=\"" + AppDirs::bundledModulesDir().toStdString() + "Tools/pkgdepends_library/" + "\"); result <- jaspModuleInstaller::installJaspModule(modulePkg='" + _modulePackage + "', moduleLibrary='" + moduleRLibrary().toStdString() + - "', repos='" + Settings::value(Settings::CRAN_REPO_URL).toString().toStdString() + "', onlyModPkg=" + (onlyModPkg ? "TRUE" : "FALSE") + - ", force=TRUE, frameworkLibrary='"+fq(AppDirs::rHome())+"/library'); .libPaths(tmp); result"; + return QString( + R"readableR( + tmp <- .libPaths(); + .libPaths("%1"); + Sys.setenv(MODULE_INSTALL_MODE="localizeModuleOnly"); + options("renv.config.install.verbose" = TRUE, "PKGDEPENDS_LIBRARY"="%2"); + result <- jaspModuleInstaller::installJaspModule(modulePkg='%3', moduleLibrary='%4', repos='%5', onlyModPkg=%6, force=TRUE, frameworkLibrary='%7'); + .libPaths(tmp); + return(result); + )readableR") + .arg(AppDirs::bundledModulesDir() + "Tools/jaspModuleInstaller_library/") + .arg(AppDirs::bundledModulesDir() + "Tools/pkgdepends_library/") + .arg(tq(_modulePackage)) + .arg(moduleRLibrary()) + .arg(Settings::value(Settings::CRAN_REPO_URL).toString()) + .arg(onlyModPkg ? "TRUE" : "FALSE") + .arg(AppDirs::rHome()+"/library") + .toStdString(); } std::string DynamicModule::generateModuleLoadingR(bool shouldReturnSucces)