diff options
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/r-modules/wrapper-rstudio.nix | 56 |
1 files changed, 38 insertions, 18 deletions
diff --git a/pkgs/development/r-modules/wrapper-rstudio.nix b/pkgs/development/r-modules/wrapper-rstudio.nix index 5eeac8fed30e..b20b61d6c58d 100644 --- a/pkgs/development/r-modules/wrapper-rstudio.nix +++ b/pkgs/development/r-modules/wrapper-rstudio.nix @@ -1,16 +1,23 @@ -{ lib, runCommand, R, rstudio, wrapQtAppsHook, recommendedPackages, packages, qtbase }: +{ lib +, runCommand +, R +, rstudio +, makeWrapper +, wrapQtAppsHook +, recommendedPackages +, packages +, fontconfig +}: -let - qtVersion = with lib.versions; "${major qtbase.version}.${minor qtbase.version}"; -in -runCommand (rstudio.name + "-wrapper") { +runCommand (rstudio.name + "-wrapper") +{ preferLocalBuild = true; allowSubstitutes = false; - nativeBuildInputs = [wrapQtAppsHook]; + nativeBuildInputs = [ (if rstudio.server then makeWrapper else wrapQtAppsHook) ]; dontWrapQtApps = true; - buildInputs = [R rstudio] ++ recommendedPackages ++ packages; + buildInputs = [ R rstudio ] ++ recommendedPackages ++ packages; # rWrapper points R to a specific set of packages by using a wrapper # (as in https://nixos.org/nixpkgs/manual/#r-packages) which sets @@ -22,14 +29,27 @@ runCommand (rstudio.name + "-wrapper") { # uses R_PROFILE_USER to load this code at startup in RStudio. fixLibsR = "fix_libs.R"; } -'' -mkdir $out -ln -s ${rstudio}/share $out -echo "# Autogenerated by wrapper-rstudio.nix from R_LIBS_SITE" > $out/$fixLibsR -echo -n ".libPaths(c(.libPaths(), \"" >> $out/$fixLibsR -echo -n $R_LIBS_SITE | sed -e 's/:/", "/g' >> $out/$fixLibsR -echo -n "\"))" >> $out/$fixLibsR -echo >> $out/$fixLibsR -makeQtWrapper ${rstudio}/bin/rstudio $out/bin/rstudio \ - --set R_PROFILE_USER $out/$fixLibsR -'' + ( + '' + mkdir -p $out/bin + ln -s ${rstudio}/share $out + echo "# Autogenerated by wrapper-rstudio.nix from R_LIBS_SITE" > $out/$fixLibsR + echo -n ".libPaths(c(.libPaths(), \"" >> $out/$fixLibsR + echo -n $R_LIBS_SITE | sed -e 's/:/", "/g' >> $out/$fixLibsR + echo -n "\"))" >> $out/$fixLibsR + echo >> $out/$fixLibsR + '' + + (if + rstudio.server then '' + makeWrapper ${rstudio}/bin/rsession $out/bin/rsession \ + --set R_PROFILE_USER $out/$fixLibsR --set FONTCONFIG_FILE ${fontconfig.out}/etc/fonts/fonts.conf + + makeWrapper ${rstudio}/bin/rserver $out/bin/rserver \ + --add-flags --rsession-path=$out/bin/rsession + '' + else + '' + makeQtWrapper ${rstudio}/bin/rstudio $out/bin/rstudio \ + --set R_PROFILE_USER $out/$fixLibsR + '') + ) |