diff options
author | Michael Raskin <7c6f434c@mail.ru> | 2009-11-06 12:27:56 +0000 |
---|---|---|
committer | Michael Raskin <7c6f434c@mail.ru> | 2009-11-06 12:27:56 +0000 |
commit | 159dc0e0cb040a441b563205791db7799abec101 (patch) | |
tree | 75c06440f5796a82d296f37055b95df018eeaa32 /pkgs/top-level/release.nix | |
parent | 866bbe32f25fbc87c3fb568d4f0d49f7ec9d56fe (diff) | |
download | nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.gz nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.bz2 nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.lz nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.xz nixpkgs-159dc0e0cb040a441b563205791db7799abec101.tar.zst nixpkgs-159dc0e0cb040a441b563205791db7799abec101.zip |
Increase robustness of tryEval use a bit
svn path=/nixpkgs/trunk/; revision=18200
Diffstat (limited to 'pkgs/top-level/release.nix')
-rw-r--r-- | pkgs/top-level/release.nix | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 824f30d18e7..e9d33f7b47b 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -39,8 +39,19 @@ let if builtins ? tryEval then let pairs = pkgs.lib.concatMap (x: - let val = builtins.tryEval (processPackage (builtins.getAttr x attrSet)); in - if builtins.isAttrs x && val.success && val.value != [] then [{name=x; value=val.value;}] else []) + let pair = builtins.tryEval + (let + attrVal = (builtins.getAttr x attrSet); + in + {val=(processPackage attrVal); + attrVal = attrVal; + attrValIsAttrs = builtins.isAttrs attrVal; + }); + success = (builtins.tryEval pair.value.attrVal).success; + in + if success && pair.value.attrValIsAttrs && + pair.value.val != [] then + [{name= x; value=pair.value.val;}] else []) (builtins.attrNames attrSet); in builtins.listToAttrs pairs @@ -51,9 +62,9 @@ let if attrSet ? recurseForDerivations && attrSet.recurseForDerivations then packagesWithMetaPlatform attrSet else - if builtins.hasAttr "platforms" attrSet.meta - then builtins.getAttr "platforms" attrSet.meta - else []; + if attrSet ? meta && attrSet.meta ? platforms + then attrSet.meta.platforms + else []; /* Common platform groups on which to test packages. */ inherit (pkgs.lib.platforms) linux darwin cygwin allBut all; |