buildRubyGem: Provide manpages for Ruby gems (#49334)

This commit is contained in:
Michael Fellinger
2018-10-29 01:48:05 +01:00
committed by zimbatm
parent 56d2af6e98
commit 34e1fa4a50
2 changed files with 27 additions and 9 deletions
@@ -24,6 +24,7 @@
, gemset ? null
, preferLocalBuild ? false
, allowSubstitutes ? false
, installManpages ? true
, meta ? {}
, postBuild ? ""
, gemConfig ? null
@@ -36,14 +37,22 @@ let
// { inherit preferLocalBuild allowSubstitutes; }; # pass the defaults
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)}
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}
''