summary refs log tree commit diff
path: root/maintainers/scripts
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-03-13 18:04:29 +0100
committerJan Tojnar <jtojnar@gmail.com>2018-03-13 18:04:47 +0100
commit2381bcd86f3bc79fffc025ffd99ea75ae5a9b7b5 (patch)
tree5a565cc970ec91d35648898ccfe0600655825e16 /maintainers/scripts
parent4f17851fb2e63b704627b7b22fa72c5fd8d3d95c (diff)
downloadnixlib-2381bcd86f3bc79fffc025ffd99ea75ae5a9b7b5.tar
nixlib-2381bcd86f3bc79fffc025ffd99ea75ae5a9b7b5.tar.gz
nixlib-2381bcd86f3bc79fffc025ffd99ea75ae5a9b7b5.tar.bz2
nixlib-2381bcd86f3bc79fffc025ffd99ea75ae5a9b7b5.tar.lz
nixlib-2381bcd86f3bc79fffc025ffd99ea75ae5a9b7b5.tar.xz
nixlib-2381bcd86f3bc79fffc025ffd99ea75ae5a9b7b5.tar.zst
nixlib-2381bcd86f3bc79fffc025ffd99ea75ae5a9b7b5.zip
maintainers/scripts/update.nix: use saner nubbing
Diffstat (limited to 'maintainers/scripts')
-rwxr-xr-xmaintainers/scripts/update.nix13
1 files changed, 12 insertions, 1 deletions
diff --git a/maintainers/scripts/update.nix b/maintainers/scripts/update.nix
index cb819a053c43..c637540a5aa4 100755
--- a/maintainers/scripts/update.nix
+++ b/maintainers/scripts/update.nix
@@ -6,11 +6,22 @@
 # TODO: add assert statements
 
 let
+  /* Remove duplicate elements from the list based on some extracted value. O(n^2) complexity.
+   */
+  nubOn = f: list:
+    if list == [] then
+      []
+    else
+      let
+        x = pkgs.lib.head list;
+        xs = pkgs.lib.filter (p: f x != f p) (pkgs.lib.drop 1 list);
+      in
+        [x] ++ nubOn f xs;
 
   pkgs = import ./../../default.nix { };
 
   packagesWith = cond: return: set:
-    pkgs.lib.unique
+    nubOn (pkg: pkg.updateScript)
       (pkgs.lib.flatten
         (pkgs.lib.mapAttrsToList
           (name: pkg: