diff options
author | Matthieu Coudron <886074+teto@users.noreply.github.com> | 2023-10-14 22:03:12 +0200 |
---|---|---|
committer | Matthieu Coudron <886074+teto@users.noreply.github.com> | 2023-10-14 22:03:12 +0200 |
commit | 64b50c6f930324745e9836e6bf9fe71c3a26feb0 (patch) | |
tree | 7343092cf4204bab8bd23bb680416ffa51e966ab /pkgs/development/lua-modules | |
parent | 54ca335a15e1c2d3d7d76f9c111191f5fab91bfd (diff) |
luaPackages: introduce an alias mechanism
so that we can deprecate modules
Diffstat (limited to 'pkgs/development/lua-modules')
-rw-r--r-- | pkgs/development/lua-modules/aliases.nix | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/pkgs/development/lua-modules/aliases.nix b/pkgs/development/lua-modules/aliases.nix new file mode 100644 index 0000000000000..52adbc1898684 --- /dev/null +++ b/pkgs/development/lua-modules/aliases.nix @@ -0,0 +1,42 @@ + +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 { +} |