Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.1 kB · 69 lines
Nix
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970{ lib, stdenv, runCommand, R, rstudio, makeWrapper, recommendedPackages, packages, fontconfig,}:
runCommand (rstudio.name + "-wrapper") { preferLocalBuild = true; allowSubstitutes = false;
nativeBuildInputs = [ makeWrapper ]; dontWrapQtApps = true;
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 # R_LIBS_SITE. Ordinarily, it would be possible to make RStudio use # this same set of packages by simply overriding its version of R # with the wrapped one, however, RStudio internally overrides # R_LIBS_SITE. The below works around this by turning R_LIBS_SITE # into an R file (fixLibsR) which achieves the same effect, then # uses R_PROFILE_USER to load this code at startup in RStudio. fixLibsR = "fix_libs.R"; } ( '' mkdir -p $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 '' ${lib.optionalString stdenv.hostPlatform.isLinux '' # symlink files from unwrapped rstudio so that the desktop file and the icons # are also installed when using the wrapped version # TODO: figure out how to handle darwin .app structures ln -s ${rstudio}/share $out ''}
makeWrapper ${rstudio}/bin/rstudio $out/bin/rstudio \ --set R_PROFILE_USER $out/$fixLibsR '' ) )