about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix')
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix46
1 files changed, 46 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix
new file mode 100644
index 000000000000..5ff2a03441de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/aliases.nix
@@ -0,0 +1,46 @@
+# Deprecated aliases - for backward compatibility
+
+lib: overriden:
+
+with overriden;
+
+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
+  # all-packages.nix.
+  checkInPkgs = n: alias: if builtins.hasAttr n overriden
+                          then throw "Alias ${n} is still in kakounePlugins"
+                          else alias;
+
+  mapAliases = aliases:
+     lib.mapAttrs (n: alias: removeDistribute
+                             (removeRecurseForDerivations
+                              (checkInPkgs n alias)))
+                     aliases;
+
+  deprecations = lib.mapAttrs (old: info:
+    throw "${old} was renamed to ${info.new} on ${info.date}. Please update to ${info.new}."
+  ) (builtins.fromJSON (builtins.readFile ./deprecated.json));
+
+in
+mapAliases ({
+  kak-auto-pairs         = auto-pairs-kak; # backwards compat, added 2021-01-04
+  kak-buffers            = kakoune-buffers; # backwards compat, added 2021-01-04
+  kak-fzf                = fzf-kak; # backwards compat, added 2021-01-04
+  kak-powerline          = powerline-kak; # backwards compat, added 2021-01-04
+  kak-prelude            = prelude-kak; # backwards compat, added 2021-01-04
+  kak-vertical-selection = kakoune-vertical-selection; # backwards compat, added 2021-01-04
+} // deprecations)