* Maintain a database table (`derivers') that maps output paths to the
derivation that produced them. * `nix-store -qd PATH' prints out the derivation that produced a path.
This commit is contained in:
		
							parent
							
								
									a37338815d
								
							
						
					
					
						commit
						450c358e20
					
				
					 4 changed files with 74 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -162,7 +162,7 @@ static void printPathSet(const PathSet & paths)
 | 
			
		|||
static void opQuery(Strings opFlags, Strings opArgs)
 | 
			
		||||
{
 | 
			
		||||
    enum { qOutputs, qRequisites, qReferences, qReferers,
 | 
			
		||||
           qReferersClosure, qGraph } query = qOutputs;
 | 
			
		||||
           qReferersClosure, qDeriver, qGraph } query = qOutputs;
 | 
			
		||||
    bool useOutput = false;
 | 
			
		||||
    bool includeOutputs = false;
 | 
			
		||||
    bool forceRealise = false;
 | 
			
		||||
| 
						 | 
				
			
			@ -174,6 +174,7 @@ static void opQuery(Strings opFlags, Strings opArgs)
 | 
			
		|||
        else if (*i == "--references") query = qReferences;
 | 
			
		||||
        else if (*i == "--referers") query = qReferers;
 | 
			
		||||
        else if (*i == "--referers-closure") query = qReferersClosure;
 | 
			
		||||
        else if (*i == "--deriver" || *i == "-d") query = qDeriver;
 | 
			
		||||
        else if (*i == "--graph") query = qGraph;
 | 
			
		||||
        else if (*i == "--use-output" || *i == "-u") useOutput = true;
 | 
			
		||||
        else if (*i == "--force-realise" || *i == "-f") forceRealise = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -214,6 +215,18 @@ static void opQuery(Strings opFlags, Strings opArgs)
 | 
			
		|||
            break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        case qDeriver:
 | 
			
		||||
            for (Strings::iterator i = opArgs.begin();
 | 
			
		||||
                 i != opArgs.end(); i++)
 | 
			
		||||
            {
 | 
			
		||||
                *i = followSymlinks(*i);
 | 
			
		||||
                Path deriver = queryDeriver(noTxn, *i);
 | 
			
		||||
                cout << format("%1%\n") %
 | 
			
		||||
                    (deriver == "" ? "unknown-deriver" : deriver);
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
#if 0            
 | 
			
		||||
        case qGraph: {
 | 
			
		||||
            PathSet roots;
 | 
			
		||||
| 
						 | 
				
			
			@ -288,7 +301,7 @@ static void opValidPath(Strings opFlags, Strings opArgs)
 | 
			
		|||
    createStoreTransaction(txn);
 | 
			
		||||
    for (Strings::iterator i = opArgs.begin();
 | 
			
		||||
         i != opArgs.end(); ++i)
 | 
			
		||||
        registerValidPath(txn, *i, hashPath(htSHA256, *i), PathSet());
 | 
			
		||||
        registerValidPath(txn, *i, hashPath(htSHA256, *i), PathSet(), "");
 | 
			
		||||
    txn.commit();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue