feat: Add validation command
This commit is contained in:
parent
1de71ab026
commit
9a3ad0ae17
35 changed files with 1666 additions and 508 deletions
|
|
@ -9,7 +9,7 @@ use miette::{bail, Result};
|
|||
use serde::{Deserialize, Serialize};
|
||||
use serde_yaml::Value;
|
||||
|
||||
use crate::{AkmodsInfo, ModuleExt};
|
||||
use crate::{base_recipe_path, AkmodsInfo, ModuleExt};
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Builder, Default)]
|
||||
pub struct ModuleRequiredFields<'a> {
|
||||
|
|
@ -80,6 +80,17 @@ impl<'a> ModuleRequiredFields<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn get_non_local_source(&'a self) -> Option<&'a str> {
|
||||
let source = self.source.as_deref()?;
|
||||
|
||||
if source == "local" {
|
||||
None
|
||||
} else {
|
||||
Some(source)
|
||||
}
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn generate_akmods_info(&'a self, os_version: &u64) -> AkmodsInfo {
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
|
|
@ -164,7 +175,7 @@ pub struct Module<'a> {
|
|||
pub from_file: Option<Cow<'a, str>>,
|
||||
}
|
||||
|
||||
impl<'a> Module<'a> {
|
||||
impl Module<'_> {
|
||||
/// Get's any child modules.
|
||||
///
|
||||
/// # Errors
|
||||
|
|
@ -202,7 +213,7 @@ impl<'a> Module<'a> {
|
|||
traversed_files.push(file_name.clone());
|
||||
|
||||
Self::get_modules(
|
||||
&ModuleExt::parse(&file_name)?.modules,
|
||||
&ModuleExt::try_from(&file_name)?.modules,
|
||||
Some(traversed_files),
|
||||
)?
|
||||
}
|
||||
|
|
@ -224,6 +235,13 @@ impl<'a> Module<'a> {
|
|||
Ok(found_modules)
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn get_from_file_path(&self) -> Option<PathBuf> {
|
||||
self.from_file
|
||||
.as_ref()
|
||||
.map(|path| base_recipe_path().join(&**path))
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn example() -> Self {
|
||||
Self::builder()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue