luaPackages: introduce an alias mechanism
so that we can deprecate modules
This commit is contained in:
parent
54ca335a15
commit
64b50c6f93
2 changed files with 49 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
# 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
pkgs/development/lua-modules/aliases.nix
Normal file
42
pkgs/development/lua-modules/aliases.nix
Normal file
|
@ -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 {
|
||||
}
|
Loading…
Reference in a new issue