mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 12:11:56 +00:00
change dependency requirement structure
This commit is contained in:
committed by
Aiden McClelland
parent
b467c1717d
commit
a28f6ca5e2
@@ -336,7 +336,7 @@ pub fn configure<'a, Db: DbHandle>(
|
|||||||
.0
|
.0
|
||||||
.iter()
|
.iter()
|
||||||
.filter_map(|(id, info)| {
|
.filter_map(|(id, info)| {
|
||||||
if info.optional.is_none() {
|
if info.requirement.required() {
|
||||||
Some((id.clone(), CurrentDependencyInfo::default()))
|
Some((id.clone(), CurrentDependencyInfo::default()))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|||||||
@@ -116,12 +116,25 @@ impl HasModel for Dependencies {
|
|||||||
type Model = MapModel<Self>;
|
type Model = MapModel<Self>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
|
#[serde(rename_all = "kebab-case")]
|
||||||
|
#[serde(tag = "type")]
|
||||||
|
pub enum DependencyRequirement {
|
||||||
|
OptIn { how: String },
|
||||||
|
OptOut { how: String },
|
||||||
|
Required,
|
||||||
|
}
|
||||||
|
impl DependencyRequirement {
|
||||||
|
pub fn required(&self) -> bool {
|
||||||
|
matches!(self, &DependencyRequirement::Required)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize, HasModel)]
|
#[derive(Clone, Debug, Deserialize, Serialize, HasModel)]
|
||||||
#[serde(rename_all = "kebab-case")]
|
#[serde(rename_all = "kebab-case")]
|
||||||
pub struct DepInfo {
|
pub struct DepInfo {
|
||||||
pub version: VersionRange,
|
pub version: VersionRange,
|
||||||
pub optional: Option<String>,
|
pub requirement: DependencyRequirement,
|
||||||
pub recommended: bool,
|
|
||||||
pub description: Option<String>,
|
pub description: Option<String>,
|
||||||
pub critical: bool,
|
pub critical: bool,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
|
|||||||
@@ -532,7 +532,7 @@ pub async fn install_s9pk<R: AsyncRead + AsyncSeek + Unpin>(
|
|||||||
.0
|
.0
|
||||||
.iter()
|
.iter()
|
||||||
.filter_map(|(id, info)| {
|
.filter_map(|(id, info)| {
|
||||||
if info.optional.is_none() {
|
if info.requirement.required() {
|
||||||
Some((id.clone(), CurrentDependencyInfo::default()))
|
Some((id.clone(), CurrentDependencyInfo::default()))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|||||||
Reference in New Issue
Block a user