Commit 64b50c6f authored by Matthieu Coudron's avatar Matthieu Coudron
Browse files

luaPackages: introduce an alias mechanism

so that we can deprecate modules
parent 54ca335a
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
# similar to interpreters/python/default.nix
{ stdenv, lib, callPackage, fetchFromGitHub, fetchurl, fetchpatch, makeBinaryWrapper }:
{ stdenv, config, lib, callPackage, fetchFromGitHub, fetchurl, fetchpatch, makeBinaryWrapper }:


let
@@ -39,7 +39,13 @@ let
            selfHostHost = luaOnHostForHost.pkgs;
            selfTargetTarget = luaOnTargetForTarget.pkgs or {};
          };

          aliases = final: prev:
            lib.optionalAttrs config.allowAliases
              (import ../../lua-modules/aliases.nix lib final prev);

          extensions = lib.composeManyExtensions [
            aliases
            generatedPackages
            overriddenPackages
            overrides
+42 −0
Original line number Diff line number Diff line

lib: self: super:

### Deprecated aliases - for backward compatibility
###
### !!! NOTE !!!
### Use `./remove-attr.py [attrname]` in this directory to remove your alias
### from the `luaPackages` set without regenerating the entire file.

with self;

let
  # Removing recurseForDerivation prevents derivations of aliased attribute
  # set to appear while listing all the packages available.
  removeRecurseForDerivations = alias: with lib;
    if alias.recurseForDerivations or false
    then removeAttrs alias ["recurseForDerivations"]
    else alias;

  # Disabling distribution prevents top-level aliases for non-recursed package
  # sets from building on Hydra.
  removeDistribute = alias: with lib;
    if isDerivation alias then
      dontDistribute alias
    else alias;

  # Make sure that we are not shadowing something from node-packages.nix.
  checkInPkgs = n: alias:
    if builtins.hasAttr n super
    then throw "Alias ${n} is still in generated.nix"
    else alias;

  mapAliases = aliases:
    lib.mapAttrs (n: alias:
      removeDistribute
        (removeRecurseForDerivations
          (checkInPkgs n alias)))
      aliases;
in

mapAliases {
}