chruby: allow for specifying Rubies to use
This allows the user to specify an attrset of Rubies to use with chruby by overriding the default of ~/.rubies with a path to a symlink tree.
This commit is contained in:
parent
03ee662161
commit
a8a9b93d98
@ -1,6 +1,13 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub }:
|
{ stdenv, lib, fetchFromGitHub, runCommand, rubies ? null }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let
|
||||||
|
rubiesEnv = runCommand "chruby-env" { preferLocalBuild = true; } ''
|
||||||
|
mkdir $out
|
||||||
|
${lib.concatStrings
|
||||||
|
(lib.mapAttrsToList (name: path: "ln -s ${path} $out/${name}\n") rubies)}
|
||||||
|
'';
|
||||||
|
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
name = "chruby";
|
name = "chruby";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
@ -10,7 +17,15 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1iq9milnnj3189yw02hkly2pnnh4g0vn2fxq6dfx90kldjwpwxq5";
|
sha256 = "1iq9milnnj3189yw02hkly2pnnh4g0vn2fxq6dfx90kldjwpwxq5";
|
||||||
};
|
};
|
||||||
|
|
||||||
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
|
phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
|
||||||
|
|
||||||
|
patches = lib.optionalString (rubies != null) [
|
||||||
|
./env.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = lib.optionalString (rubies != null) ''
|
||||||
|
substituteInPlace share/chruby/chruby.sh --replace "@rubiesEnv@" ${rubiesEnv}
|
||||||
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir $out
|
mkdir $out
|
||||||
|
12
pkgs/development/tools/misc/chruby/env.patch
Normal file
12
pkgs/development/tools/misc/chruby/env.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/share/chruby/chruby.sh b/share/chruby/chruby.sh
|
||||||
|
--- a/share/chruby/chruby.sh
|
||||||
|
+++ b/share/chruby/chruby.sh
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
CHRUBY_VERSION="0.3.8"
|
||||||
|
RUBIES=()
|
||||||
|
|
||||||
|
-for dir in "$PREFIX/opt/rubies" "$HOME/.rubies"; do
|
||||||
|
+for dir in @rubiesEnv@; do
|
||||||
|
[[ -d "$dir" && -n "$(ls -A "$dir")" ]] && RUBIES+=("$dir"/*)
|
||||||
|
done
|
||||||
|
unset dir
|
@ -4270,7 +4270,7 @@ let
|
|||||||
|
|
||||||
chrpath = callPackage ../development/tools/misc/chrpath { };
|
chrpath = callPackage ../development/tools/misc/chrpath { };
|
||||||
|
|
||||||
chruby = callPackage ../development/tools/misc/chruby { };
|
chruby = callPackage ../development/tools/misc/chruby { rubies = null; };
|
||||||
|
|
||||||
"cl-launch" = callPackage ../development/tools/misc/cl-launch {};
|
"cl-launch" = callPackage ../development/tools/misc/cl-launch {};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user