Commit 0a3d3512 authored by Artturin's avatar Artturin
Browse files

splice.nix: run nixpkgs-fmt

the file was a bit hard to read
parent ff76349c
Loading
Loading
Loading
Loading
+99 −79
Original line number Diff line number Diff line
@@ -18,10 +18,15 @@ lib: pkgs: actuallySplice:

let

  spliceReal = { pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
               , pkgsHostHost, pkgsHostTarget
  spliceReal =
    { pkgsBuildBuild
    , pkgsBuildHost
    , pkgsBuildTarget
    , pkgsHostHost
    , pkgsHostTarget
    , pkgsTargetTarget
               }: let
    }:
    let
      mash =
        # Other pkgs sets
        pkgsBuildBuild // pkgsBuildTarget // pkgsHostHost // pkgsTargetTarget
@@ -29,7 +34,8 @@ let
        // pkgsBuildHost // pkgsHostTarget;
      merge = name: {
        inherit name;
      value = let
        value =
          let
            defaultValue = mash.${name};
            # `or {}` is for the non-derivation attsert splicing case, where `{}` is the identity.
            valueBuildBuild = pkgsBuildBuild.${name} or { };
@@ -49,15 +55,18 @@ let
                  // (lib.optionalAttrs (pkgsBuildTarget ? ${name}) { buildTarget = valueBuildTarget; })
                  // (lib.optionalAttrs (pkgsHostHost ? ${name}) { hostHost = valueHostHost; })
                  // (lib.optionalAttrs (pkgsHostTarget ? ${name}) { hostTarget = valueHostTarget; })
              // (lib.optionalAttrs (pkgsTargetTarget ? ${name}) { targetTarget = valueTargetTarget;
                  // (lib.optionalAttrs (pkgsTargetTarget ? ${name}) {
                  targetTarget = valueTargetTarget;
                });
            };
            # Get the set of outputs of a derivation. If one derivation fails to
            # evaluate we don't want to diverge the entire splice, so we fall back
            # on {}
        tryGetOutputs = value0: let
            tryGetOutputs = value0:
              let
                inherit (builtins.tryEval value0) success value;
        in getOutputs (lib.optionalAttrs success value);
              in
              getOutputs (lib.optionalAttrs success value);
            getOutputs = value: lib.genAttrs
              (value.outputs or (lib.optional (value ? out) "out"))
              (output: value.${output});
@@ -72,7 +81,9 @@ let
            pkgsHostTarget = getOutputs valueHostTarget;
            pkgsTargetTarget = tryGetOutputs valueTargetTarget;
            # Just recur on plain attrsets
        } else if lib.isAttrs defaultValue then spliceReal {
          } else if lib.isAttrs defaultValue then
            spliceReal
              {
                pkgsBuildBuild = valueBuildBuild;
                pkgsBuildHost = valueBuildHost;
                pkgsBuildTarget = valueBuildTarget;
@@ -83,15 +94,21 @@ let
                # `__functor__` for functions instead.
              } else defaultValue;
      };
  in lib.listToAttrs (map merge (lib.attrNames mash));
    in
    lib.listToAttrs (map merge (lib.attrNames mash));

  splicePackages = { pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
                   , pkgsHostHost, pkgsHostTarget
  splicePackages =
    { pkgsBuildBuild
    , pkgsBuildHost
    , pkgsBuildTarget
    , pkgsHostHost
    , pkgsHostTarget
    , pkgsTargetTarget
    } @ args:
    if actuallySplice then spliceReal args else pkgsHostTarget;

  splicedPackages = splicePackages {
  splicedPackages = splicePackages
    {
      inherit (pkgs)
        pkgsBuildBuild pkgsBuildHost pkgsBuildTarget
        pkgsHostHost pkgsHostTarget
@@ -109,7 +126,10 @@ let
  };

  splicedPackagesWithXorg = splicedPackages // builtins.removeAttrs splicedPackages.xorg [
    "callPackage" "newScope" "overrideScope" "packages"
    "callPackage"
    "newScope"
    "overrideScope"
    "packages"
  ];

in