From 7d3e75827bc20d50a3b9172ed8891e5bffb30c93 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Thu, 14 Apr 2016 18:13:50 +0300 Subject: [PATCH] getOutput function: init --- lib/attrsets.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/attrsets.nix b/lib/attrsets.nix index 4161fa546c8f..9104ff35d194 100644 --- a/lib/attrsets.nix +++ b/lib/attrsets.nix @@ -438,6 +438,18 @@ rec { overrideExisting = old: new: old // listToAttrs (map (attr: nameValuePair attr (attrByPath [attr] old.${attr} new)) (attrNames old)); + /* Get a package output. + If no output is found, fallback to `.out` and then to the default. + + Example: + getOutput "dev" pkgs.openssl + => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev" + */ + getOutput = output: pkg: + if pkg.outputUnspecified or false + then pkg.${output} or pkg.out or pkg + else pkg; + /*** deprecated stuff ***/