summary refs log tree commit diff
path: root/pkgs/development/lua-modules/aliases.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/lua-modules/aliases.nix')
-rw-r--r--pkgs/development/lua-modules/aliases.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/development/lua-modules/aliases.nix b/pkgs/development/lua-modules/aliases.nix
new file mode 100644
index 00000000000..47a097fd7f7
--- /dev/null
+++ b/pkgs/development/lua-modules/aliases.nix
@@ -0,0 +1,43 @@
+
+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 {
+  "lpty" = throw "lpy was removed because broken and unmaintained "; # added 2023-10-14
+}