From 75358ad0e7a143ad6849882a1967ef6a5c2e6e68 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Wed, 6 Jan 2016 21:43:22 +0300 Subject: [PATCH] bundlerEnv: add wrapper --- .../interpreters/ruby/bundler-env/default.nix | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/pkgs/development/interpreters/ruby/bundler-env/default.nix b/pkgs/development/interpreters/ruby/bundler-env/default.nix index c7570d815e3..fdafa5f8f12 100644 --- a/pkgs/development/interpreters/ruby/bundler-env/default.nix +++ b/pkgs/development/interpreters/ruby/bundler-env/default.nix @@ -65,8 +65,24 @@ let "${bundler}/${ruby.gemPath}" \ ${shellEscape (toString envPaths)} '' + lib.optionalString (postBuild != null) postBuild; - passthru = { + passthru = rec { inherit ruby bundler meta gems; + + wrapper = stdenv.mkDerivation { + name = "wrapper-${name}"; + nativeBuildInputs = [ makeWrapper ]; + buildCommand = '' + mkdir -p $out/bin + for i in ${ruby}/bin/*; do + makeWrapper "$i" $out/bin/$(basename "$i") \ + --set BUNDLE_GEMFILE ${confFiles}/Gemfile \ + --set BUNDLE_PATH ${bundlerEnv}/${ruby.gemPath} \ + --set GEM_HOME ${bundlerEnv}/${ruby.gemPath} \ + --set GEM_PATH ${bundlerEnv}/${ruby.gemPath} + done + ''; + }; + env = let irbrc = builtins.toFile "irbrc" '' if !(ENV["OLD_IRBRC"].nil? || ENV["OLD_IRBRC"].empty?) @@ -77,12 +93,8 @@ let ''; in stdenv.mkDerivation { name = "interactive-${name}-environment"; - nativeBuildInputs = [ ruby bundlerEnv ]; + nativeBuildInputs = [ wrapper bundlerEnv ]; shellHook = '' - export BUNDLE_GEMFILE=${confFiles}/Gemfile - export BUNDLE_PATH=${bundlerEnv}/${ruby.gemPath} - export GEM_HOME=${bundlerEnv}/${ruby.gemPath} - export GEM_PATH=${bundlerEnv}/${ruby.gemPath} export OLD_IRBRC="$IRBRC" export IRBRC=${irbrc} '';