diff options
Diffstat (limited to 'pkgs/development/ruby-modules/bundler-app/default.nix')
-rw-r--r-- | pkgs/development/ruby-modules/bundler-app/default.nix | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/pkgs/development/ruby-modules/bundler-app/default.nix b/pkgs/development/ruby-modules/bundler-app/default.nix index c8f61389ad3f..60e3a38517ce 100644 --- a/pkgs/development/ruby-modules/bundler-app/default.nix +++ b/pkgs/development/ruby-modules/bundler-app/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, callPackage, runCommand, ruby }@defs: +{ lib, stdenv, callPackage, runCommand, makeWrapper, ruby }@defs: # Use for simple installation of Ruby tools shipped in a Gem. # Start with a Gemfile that includes `gem <toolgem>` @@ -24,7 +24,9 @@ , gemset ? null , preferLocalBuild ? false , allowSubstitutes ? false +, installManpages ? true , meta ? {} +, buildInputs ? [] , postBuild ? "" , gemConfig ? null }@args: @@ -32,18 +34,29 @@ let basicEnv = (callPackage ../bundled-common {}) args; - cmdArgs = removeAttrs args [ "pname" "postBuild" "gemConfig" ] - // { inherit preferLocalBuild allowSubstitutes; }; # pass the defaults + cmdArgs = removeAttrs args [ "pname" "postBuild" "gemConfig" ] // { + inherit preferLocalBuild allowSubstitutes; # pass the defaults + + buildInputs = buildInputs ++ lib.optional (scripts != []) makeWrapper; + }; in - runCommand basicEnv.name cmdArgs '' - mkdir -p $out/bin; - ${(lib.concatMapStrings (x: "ln -s '${basicEnv}/bin/${x}' $out/bin/${x};\n") exes)} - ${(lib.concatMapStrings (s: "makeWrapper $out/bin/$(basename ${s}) $srcdir/${s} " + - "--set BUNDLE_GEMFILE ${basicEnv.confFiles}/Gemfile "+ - "--set BUNDLE_PATH ${basicEnv}/${ruby.gemPath} "+ - "--set BUNDLE_FROZEN 1 "+ - "--set GEM_HOME ${basicEnv}/${ruby.gemPath} "+ - "--set GEM_PATH ${basicEnv}/${ruby.gemPath} "+ - "--run \"cd $srcdir\";\n") scripts)} + runCommand basicEnv.name cmdArgs '' + mkdir -p $out/bin + ${(lib.concatMapStrings (x: "ln -s '${basicEnv}/bin/${x}' $out/bin/${x};\n") exes)} + ${(lib.concatMapStrings (s: "makeWrapper $out/bin/$(basename ${s}) $srcdir/${s} " + + "--set BUNDLE_GEMFILE ${basicEnv.confFiles}/Gemfile "+ + "--set BUNDLE_PATH ${basicEnv}/${ruby.gemPath} "+ + "--set BUNDLE_FROZEN 1 "+ + "--set GEM_HOME ${basicEnv}/${ruby.gemPath} "+ + "--set GEM_PATH ${basicEnv}/${ruby.gemPath} "+ + "--run \"cd $srcdir\";\n") scripts)} + + ${lib.optionalString installManpages '' + for section in {1..9}; do + mandir="$out/share/man/man$section" + find -L ${basicEnv}/${ruby.gemPath}/gems/${basicEnv.name} \( -wholename "*/man/*.$section" -o -wholename "*/man/man$section/*.$section" \) -print -execdir mkdir -p $mandir \; -execdir cp '{}' $mandir \; + done + ''} + ${postBuild} '' |