Skip to content

Commit e2b0e4b

Browse files
DerGuteMoritzwhentze
authored andcommitted
Extract & export wrapPrograms utility
Can be used to wrap other programs in the locked home. Useful e.g. for babashka.
1 parent b9ed7d5 commit e2b0e4b

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,6 @@ in {
7575
};
7676
shellEnv = utils.shellEnv homeDirectory;
7777
wrapClojure = utils.wrapClojure homeDirectory;
78+
wrapPrograms = utils.wrapPrograms homeDirectory;
7879
};
7980
}

utils.nix

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,18 @@ rec {
1414
'';
1515
};
1616
};
17-
wrapClojure = homeDirectory: clojure:
18-
(pkgs.runCommandNoCC "locked-clojure" { buildInputs = [ pkgs.makeWrapper ]; } ''
17+
wrapPrograms = homeDirectory: name: paths:
18+
let script = pkgs.lib.concatMapStrings (path: ''
19+
makeWrapper "${path}" "$out/bin/$(basename "${path}")" \
20+
--run "source ${shellEnv homeDirectory}"
21+
'')
22+
paths;
23+
in
24+
pkgs.runCommandNoCC name { buildInputs = [ pkgs.makeWrapper ]; } ''
1925
mkdir -p $out/bin
20-
makeWrapper ${clojure}/bin/clojure $out/bin/clojure \
21-
--run "source ${shellEnv homeDirectory}"
22-
makeWrapper ${clojure}/bin/clj $out/bin/clj \
23-
--run "source ${shellEnv homeDirectory}"
24-
'');
26+
${script}
27+
'';
28+
wrapClojure = homeDirectory: clojure:
29+
wrapPrograms homeDirectory "locked-clojure" ["${clojure}/bin/clojure"
30+
"${clojure}/bin/clj"];
2531
}

0 commit comments

Comments
 (0)