fix(nix-compat/derivation): handle dups
This now properly checks for duplicate output names in input derivation output names, and duplicate input sources. Change-Id: I0053854bfbf504f4f511fb3fe1a77a82b3aa61dd Reviewed-on: https://cl.tvl.fyi/c/depot/+/9738 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: raitobezarius <tvl@lahfa.xyz>
This commit is contained in:
		
							parent
							
								
									2410f2292f
								
							
						
					
					
						commit
						8934b34489
					
				
					 2 changed files with 173 additions and 23 deletions
				
			
		| 
						 | 
				
			
			@ -6,15 +6,23 @@ use crate::nixhash;
 | 
			
		|||
 | 
			
		||||
pub type NomResult<I, O> = IResult<I, O, NomError<I>>;
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, PartialEq)]
 | 
			
		||||
#[derive(Debug, thiserror::Error, PartialEq)]
 | 
			
		||||
pub enum ErrorKind {
 | 
			
		||||
    // duplicate key in map
 | 
			
		||||
    /// duplicate key in map
 | 
			
		||||
    #[error("duplicate map key: {0}")]
 | 
			
		||||
    DuplicateMapKey(String),
 | 
			
		||||
 | 
			
		||||
    // Digest parsing error
 | 
			
		||||
    /// Input derivation has two outputs with the same name
 | 
			
		||||
    #[error("duplicate output name {1} for input derivation {0}")]
 | 
			
		||||
    DuplicateInputDerivationOutputName(String, String),
 | 
			
		||||
 | 
			
		||||
    #[error("duplicate input source: {0}")]
 | 
			
		||||
    DuplicateInputSource(String),
 | 
			
		||||
 | 
			
		||||
    #[error("nix hash error: {0}")]
 | 
			
		||||
    NixHashError(nixhash::Error),
 | 
			
		||||
 | 
			
		||||
    // error kind wrapped from native nom errors
 | 
			
		||||
    #[error("nom error: {0:?}")]
 | 
			
		||||
    Nom(nom::error::ErrorKind),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue