File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11{
2- description = "R package development environment" ;
2+ description = "Minimal reproducible R dev environment (no workspace save, no history) " ;
33
44 inputs = {
55 nixpkgs . url = "github:NixOS/nixpkgs/nixos-unstable" ;
1515 flake-utils . lib . eachDefaultSystem (
1616 system :
1717 let
18- pkgs = import nixpkgs {
19- inherit system ;
20- config . allowUnfree = true ;
21- } ;
22-
23- rPackages = pkgs . rWrapper . override {
24- packages = with pkgs . rPackages ; [
25- devtools
26- roxygen2
27- testthat
28- usethis
29- pkgdown
30- languageserver
31- ] ;
32- } ;
18+ pkgs = import nixpkgs { inherit system ; } ;
19+ Rnosave = pkgs . writeShellScriptBin "R" (
20+ let
21+ r = pkgs . rWrapper . override {
22+ packages = with pkgs . rPackages ; [
23+ devtools
24+ roxygen2
25+ testthat
26+ usethis
27+ pkgdown
28+ languageserver
29+ ] ;
30+ } ;
31+ in
32+ ''
33+ exec ${ r } /bin/R --no-save --no-restore-data --no-restore-history "$@"
34+ ''
35+ ) ;
3336 in
3437 {
3538 devShells . default = pkgs . mkShell {
36- buildInputs = with pkgs ; [
37- R
38- rPackages
39- air-formatter
40- positron-bin
41-
42- gcc
43- gfortran
44- pkg-config
39+ packages = [
40+ Rnosave
41+ pkgs . gcc
42+ pkgs . gfortran
43+ pkgs . pkg-config
4544 ] ;
46-
4745 shellHook = ''
48- export R_HOME=${ pkgs . R } /lib/R
49- export R_USER=${ rPackages } /lib/R/library
50- export PATH=${ pkgs . R } /bin:${ rPackages } /bin:$PATH
51- export R_LIBS_USER=${ rPackages } /lib/R/library
52- export R_LIBS_SITE=${ rPackages } /lib/R/library
46+ export R_LIBS_USER="$PWD/.Rlibs"
47+ mkdir -p "$R_LIBS_USER"
48+ export R_HISTFILE=/dev/null
5349 '' ;
5450 } ;
5551 }
You can’t perform that action at this time.
0 commit comments