summary refs log tree commit diff
path: root/pkgs/applications/editors/kakoune
diff options
context:
space:
mode:
authorFlakebi <flakebi@t-online.de>2021-01-04 01:11:33 +0100
committerFlakebi <flakebi@t-online.de>2021-02-25 10:06:33 +0100
commit30f9fd98f95ccc44aed32f0033898f2f7cf63d82 (patch)
treed793ad390ee1bb7181a72631ed61e1bbca0d47e6 /pkgs/applications/editors/kakoune
parentf8cc77fc577c79bceb35ac2f5f831519f730c67e (diff)
downloadnixpkgs-30f9fd98f95ccc44aed32f0033898f2f7cf63d82.tar
nixpkgs-30f9fd98f95ccc44aed32f0033898f2f7cf63d82.tar.gz
nixpkgs-30f9fd98f95ccc44aed32f0033898f2f7cf63d82.tar.bz2
nixpkgs-30f9fd98f95ccc44aed32f0033898f2f7cf63d82.tar.lz
nixpkgs-30f9fd98f95ccc44aed32f0033898f2f7cf63d82.tar.xz
nixpkgs-30f9fd98f95ccc44aed32f0033898f2f7cf63d82.tar.zst
nixpkgs-30f9fd98f95ccc44aed32f0033898f2f7cf63d82.zip
kakounePlugins: add aliases for old names
Diffstat (limited to 'pkgs/applications/editors/kakoune')
-rw-r--r--pkgs/applications/editors/kakoune/plugins/aliases.nix46
-rw-r--r--pkgs/applications/editors/kakoune/plugins/default.nix6
-rw-r--r--pkgs/applications/editors/kakoune/plugins/deprecated.json1
3 files changed, 51 insertions, 2 deletions
diff --git a/pkgs/applications/editors/kakoune/plugins/aliases.nix b/pkgs/applications/editors/kakoune/plugins/aliases.nix
new file mode 100644
index 00000000000..5ff2a03441d
--- /dev/null
+++ b/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)
diff --git a/pkgs/applications/editors/kakoune/plugins/default.nix b/pkgs/applications/editors/kakoune/plugins/default.nix
index c8054aaf87b..1fe16a4e60c 100644
--- a/pkgs/applications/editors/kakoune/plugins/default.nix
+++ b/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, kakouneUtils }:
+{ callPackage, config, kakouneUtils, lib }:
 
 let
 
@@ -18,6 +18,8 @@ let
     inherit buildKakounePluginFrom2Nix;
   };
 
+  aliases = lib.optionalAttrs (config.allowAliases or true) (import ./aliases.nix lib plugins);
+
 in
 
-plugins
+plugins // aliases
diff --git a/pkgs/applications/editors/kakoune/plugins/deprecated.json b/pkgs/applications/editors/kakoune/plugins/deprecated.json
new file mode 100644
index 00000000000..0967ef424bc
--- /dev/null
+++ b/pkgs/applications/editors/kakoune/plugins/deprecated.json
@@ -0,0 +1 @@
+{}