mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-14 13:39:15 +03:00
maintainer scripts: init check-hydra-by-maintainer.nix
This commit is contained in:
parent
bb7b1b59c8
commit
3cac0987e1
1 changed files with 67 additions and 0 deletions
67
maintainers/scripts/check-hydra-by-maintainer.nix
Normal file
67
maintainers/scripts/check-hydra-by-maintainer.nix
Normal file
|
@ -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 $?
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue