48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ 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
 | 
						|
                  # 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 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 "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: pkg: pkg)
 | 
						|
  pkgs
 |