Simplifying interface on gemset.nix slightly.

`usesGemspec` no longer required to trigger the "copy everything into
gemfile-and-lock" behavior. If the mainGem is referred to by path,
that's sufficient.
This commit is contained in:
Judson 2017-02-20 21:03:44 -08:00
parent 3c9941114f
commit 0481a33d21
No known key found for this signature in database
GPG Key ID: 1817B08954BF0B7D

View File

@ -76,16 +76,14 @@ let
if hasBundler then gems.bundler
else defs.bundler.override (attrs: { inherit ruby; });
pathDerivation = {
usesGemspec ? false, ...
}@attrs:
pathDerivation = { gemName, version, path, ... }:
let
res = {
inherit usesGemspec;
type = "derivation";
name = attrs.gemName;
version = attrs.version;
outPath = attrs.path;
bundledByPath = true;
name = gemName;
version = version;
outPath = path;
outputs = [ "out" ];
out = res;
outputName = "out";
@ -105,10 +103,10 @@ let
gems = lib.flip lib.mapAttrs configuredGemset (name: attrs: buildGem name attrs);
maybeCopyAll = main: if main == null then "" else copyIfUseGemspec main;
maybeCopyAll = main: if main == null then "" else copyIfBundledByPath main;
copyIfUseGemspec = { usesGemspec ? false, ...}@main:
(if usesGemspec then ''
copyIfBundledByPath = { bundledByPath ? false, ...}@main:
(if bundledByPath then ''
cp -a ${gemdir}/* $out/
'' else ""
);