Skip to content

Commit 3acfa61

Browse files
committed
Further work on flake
1 parent 14cac48 commit 3acfa61

1 file changed

Lines changed: 27 additions & 31 deletions

File tree

flake.nix

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
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";
@@ -15,41 +15,37 @@
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
}

0 commit comments

Comments
 (0)