diff options
author | gnidorah <gnidorah@users.noreply.github.com> | 2020-05-09 18:22:20 +0300 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2020-05-09 18:59:04 +0200 |
commit | d0c3e7bedb390d79291f23685355bcaf1fcd152f (patch) | |
tree | c383dc5a4bcdd1747ca79c840b4419b989c2aff8 /maintainers/scripts/build.nix | |
parent | d4c2f1ab5d1fe5f39d8334547bd7e5eb7e68e568 (diff) | |
download | nixpkgs-d0c3e7bedb390d79291f23685355bcaf1fcd152f.tar nixpkgs-d0c3e7bedb390d79291f23685355bcaf1fcd152f.tar.gz nixpkgs-d0c3e7bedb390d79291f23685355bcaf1fcd152f.tar.bz2 nixpkgs-d0c3e7bedb390d79291f23685355bcaf1fcd152f.tar.lz nixpkgs-d0c3e7bedb390d79291f23685355bcaf1fcd152f.tar.xz nixpkgs-d0c3e7bedb390d79291f23685355bcaf1fcd152f.tar.zst nixpkgs-d0c3e7bedb390d79291f23685355bcaf1fcd152f.zip |
maintainers/scripts/build.nix: script to build all maintainer packages
Diffstat (limited to 'maintainers/scripts/build.nix')
-rw-r--r-- | maintainers/scripts/build.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/maintainers/scripts/build.nix b/maintainers/scripts/build.nix new file mode 100644 index 00000000000..c70993cf138 --- /dev/null +++ b/maintainers/scripts/build.nix @@ -0,0 +1,43 @@ +{ maintainer }: + +# based on update.nix +# nix-build build.nix --argstr maintainer <yourname> + +let + pkgs = import ./../../default.nix {}; + maintainer_ = pkgs.lib.maintainers.${maintainer}; + packagesWith = cond: return: set: + (pkgs.lib.flatten + (pkgs.lib.mapAttrsToList + (name: pkg: + let + result = builtins.tryEval + ( + if pkgs.lib.isDerivation pkg && cond name pkg + then [ (return name pkg) ] + else if pkg.recurseForDerivations or false || pkg.recurseForRelease or false + then packagesWith cond return pkg + else [ ] + ); + in + if result.success then result.value + else [ ] + ) + set + ) + ); +in +packagesWith + (name: pkg: + ( + if 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: pkg: pkg) + pkgs |