summaryrefslogtreecommitdiffstats
path: root/maintainers/scripts/update.nix
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/update.nix
parent4f17851fb2e63b704627b7b22fa72c5fd8d3d95c (diff)
maintainers/scripts/update.nix: use saner nubbing
Diffstat (limited to 'maintainers/scripts/update.nix')
-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: