summaryrefslogtreecommitdiffstats
path: root/maintainers
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2021-01-06 01:59:03 +0100
committerGitHub <noreply@github.com>2021-01-06 01:59:03 +0100
commitab6dc6eb650c368838614dee94a1e4f000156c9b (patch)
treeb4e01e721d1f9860a5e58290f51213b76643fcc6 /maintainers
parent59c03dc61606b1be305beada6e9f1ddb707aecd7 (diff)
parent3cac0987e1bfbe9568417b94e78dd98b0e4573b9 (diff)
Merge pull request #101741 from SuperSandro2000/check-hydra
maintainer scripts: init check-hydra-by-maintainer.nix
Diffstat (limited to 'maintainers')
-rw-r--r--maintainers/scripts/check-hydra-by-maintainer.nix67
1 files changed, 67 insertions, 0 deletions
diff --git a/maintainers/scripts/check-hydra-by-maintainer.nix b/maintainers/scripts/check-hydra-by-maintainer.nix
new file mode 100644
index 000000000000..cecf65ec66dc
--- /dev/null
+++ b/maintainers/scripts/check-hydra-by-maintainer.nix
@@ -0,0 +1,67 @@
+{ maintainer }:
+let
+ pkgs = import ./../../default.nix { };
+ maintainer_ = pkgs.lib.maintainers.${maintainer};
+ packagesWith = cond: return: prefix: set:
+ (pkgs.lib.flatten
+ (pkgs.lib.mapAttrsToList
+ (name: pkg:
+ let
+ result = builtins.tryEval
+ (
+ if pkgs.lib.isDerivation pkg && cond name pkg then
+ # Skip packages whose closure fails on evaluation.
+ # This happens for pkgs like `python27Packages.djangoql`
+ # that have disabled Python pkgs as dependencies.
+ builtins.seq pkg.outPath
+ [ (return "${prefix}${name}") ]
+ else if pkg.recurseForDerivations or false || pkg.recurseForRelease or false
+ # then packagesWith cond return pkg
+ then packagesWith cond return "${name}." pkg
+ else [ ]
+ );
+ in
+ if result.success then result.value
+ else [ ]
+ )
+ set
+ )
+ );
+
+ packages = packagesWith
+ (name: pkg:
+ (
+ if builtins.hasAttr "meta" pkg && builtins.hasAttr "maintainers" pkg.meta
+ then
+ (
+ if builtins.isList pkg.meta.maintainers
+ then builtins.elem maintainer_ pkg.meta.maintainers
+ else maintainer_ == pkg.meta.maintainers
+ )
+ else false
+ )
+ )
+ (name: name)
+ ("")
+ pkgs;
+
+in
+pkgs.stdenv.mkDerivation {
+ name = "nixpkgs-update-script";
+ buildCommand = ''
+ echo ""
+ echo "----------------------------------------------------------------"
+ echo ""
+ echo "nix-shell maintainers/scripts/check-hydra-by-maintainer.nix --argstr maintainer SuperSandro2000"
+ echo ""
+ echo "----------------------------------------------------------------"
+ exit 1
+ '';
+ shellHook = ''
+ unset shellHook # do not contaminate nested shells
+ echo "Please stand by"
+ echo nix-shell -p hydra-check --run "hydra-check ${builtins.concatStringsSep " " packages}"
+ nix-shell -p hydra-check --run "hydra-check ${builtins.concatStringsSep " " packages}"
+ exit $?
+ '';
+}