refactor(tvix/derivation): expose proper ValidateDerivationError
Use proper errors, instead of anyhow. Change-Id: I6db14c72a6319b389b0136aac7b84f50a30fb366 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7847 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
95cad95b93
commit
d644ed389a
7 changed files with 109 additions and 30 deletions
44
tvix/derivation/src/errors.rs
Normal file
44
tvix/derivation/src/errors.rs
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
use thiserror::Error;
|
||||
use tvix_store::store_path::ParseStorePathError;
|
||||
|
||||
/// Errors that can occur during the validation of Derivation structs.
|
||||
#[derive(Debug, Error)]
|
||||
pub enum ValidateDerivationError {
|
||||
// outputs
|
||||
#[error("No outputs defined.")]
|
||||
NoOutputs(),
|
||||
#[error("Invalid output name: {0}.")]
|
||||
InvalidOutputName(String),
|
||||
#[error("Encountered fixed-output derivation, but more than 1 output in total.")]
|
||||
MoreThanOneOutputButFixed(),
|
||||
#[error("Invalid output name for fixed-output derivation: {0}.")]
|
||||
InvalidOutputNameForFixed(String),
|
||||
#[error("Unable to parse path of output {0}: {1}.")]
|
||||
InvalidOutputPath(String, ParseStorePathError),
|
||||
|
||||
// input derivation
|
||||
#[error("Unable to parse input derivation path {0}: {1}.")]
|
||||
InvalidInputDerivationPath(String, ParseStorePathError),
|
||||
#[error("Input Derivation {0} doesn't end with .drv.")]
|
||||
InvalidInputDerivationPrefix(String),
|
||||
#[error("Input Derivation {0} output names are empty.")]
|
||||
EmptyInputDerivationOutputNames(String),
|
||||
#[error("Input Derivation {0} output name {1} is invalid.")]
|
||||
InvalidInputDerivationOutputName(String, String),
|
||||
|
||||
// input sources
|
||||
#[error("Unable to parse input sources path {0}: {1}.")]
|
||||
InvalidInputSourcesPath(String, ParseStorePathError),
|
||||
|
||||
// platform
|
||||
#[error("Invalid platform field: {0}")]
|
||||
InvalidPlatform(String),
|
||||
|
||||
// builder
|
||||
#[error("Invalid builder field: {0}")]
|
||||
InvalidBuilder(String),
|
||||
|
||||
// environment
|
||||
#[error("Invalid environment key {0}")]
|
||||
InvalidEnvironmentKey(String),
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue