* Give unpacked channels more sensible names than 0, 1, ... They now
get the basename of the channel URL (e.g., nixpkgs-unstable).  The
  top-level Nix expression of the channel is now an attribute set, the
  attributes of which are the individual channels (e.g.,
  {nixpkgs_unstable = ...; strategoxt_unstable = ...}).  This makes
  attribute paths ("nix-env -qaA" and "nix-env -iA") more sensible,
  e.g., "nix-env -iA nixpkgs_unstable.subversion".
			
			
This commit is contained in:
		
							parent
							
								
									a9d15d4f43
								
							
						
					
					
						commit
						93aefd9fc0
					
				
					 5 changed files with 43 additions and 20 deletions
				
			
		|  | @ -170,12 +170,21 @@ static void getDerivations(EvalState & state, Expr e, | |||
|     if (matchAttrs(e, es)) { | ||||
|         ATermMap drvMap(ATgetLength(es)); | ||||
|         queryAllAttrs(e, drvMap); | ||||
| 
 | ||||
|         /* !!! undocumented hackery to support
 | ||||
|            corepkgs/channels/unpack.sh. */ | ||||
|         Expr e2 = drvMap.get(toATerm("_combineChannels")); | ||||
|         bool combineChannels = e2 && evalBool(state, e2); | ||||
|          | ||||
|         for (ATermMap::const_iterator i = drvMap.begin(); i != drvMap.end(); ++i) { | ||||
|             startNest(nest, lvlDebug, | ||||
|                 format("evaluating attribute `%1%'") % aterm2String(i->key)); | ||||
|             string pathPrefix2 = addToPath(pathPrefix, aterm2String(i->key)); | ||||
|             if (getDerivation(state, i->value, pathPrefix2, drvs, doneExprs)) { | ||||
|             if (combineChannels) { | ||||
|                 if (((string) aterm2String(i->key)) != "_combineChannels") | ||||
|                     getDerivations(state, i->value, pathPrefix2, autoArgs, drvs, doneExprs); | ||||
|             } | ||||
|             else if (getDerivation(state, i->value, pathPrefix2, drvs, doneExprs)) { | ||||
|                 /* If the value of this attribute is itself an
 | ||||
|                    attribute set, should we recurse into it?  => Only | ||||
|                    if it has a `recurseForDerivations = true' | ||||
|  | @ -185,8 +194,8 @@ static void getDerivations(EvalState & state, Expr e, | |||
|                 if (matchAttrs(e, es)) { | ||||
|                     ATermMap attrs(ATgetLength(es)); | ||||
|                     queryAllAttrs(e, attrs, false); | ||||
|                     Expr e2 = attrs.get(toATerm("recurseForDerivations")); | ||||
|                     if (e2 && evalBool(state, e2)) | ||||
|                     if (((e2 = attrs.get(toATerm("recurseForDerivations"))) | ||||
|                             && evalBool(state, e2))) | ||||
|                         getDerivations(state, e, pathPrefix2, autoArgs, drvs, doneExprs); | ||||
|                 } | ||||
|             } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue