summaryrefslogtreecommitdiffstats
path: root/src/package/dag.rs
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-06-25 19:09:52 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2021-09-16 12:32:18 +0200
commit3cc328a5f5857b95299d0ef998be5dcc3ddde6a7 (patch)
treeaf2945fe2dfdf111b766221f914538f32fbf20e9 /src/package/dag.rs
parent7902138f93e397c8a41f0699e970924916d613b0 (diff)
Add passing of data for condition-check
This patch extends the interface for building the package DAG with a parameter for the data that is required to check conditions for conditional dependencies. A "DTO" type is added for this data. The actual condition-checking is not implemented in this patch. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/package/dag.rs')
-rw-r--r--src/package/dag.rs38
1 files changed, 33 insertions, 5 deletions
diff --git a/src/package/dag.rs b/src/package/dag.rs
index aea416c..e5dc840 100644
--- a/src/package/dag.rs
+++ b/src/package/dag.rs
@@ -25,6 +25,7 @@ use resiter::AndThen;
use getset::Getters;
use crate::package::Package;
+use crate::package::condition::ConditionData;
use crate::repository::Repository;
#[derive(Debug, Getters)]
@@ -41,6 +42,7 @@ impl Dag {
p: Package,
repo: &Repository,
progress: Option<&ProgressBar>,
+ _conditional_data: &ConditionData<'_>, // required for selecting packages with conditional dependencies
) -> Result<Self> {
fn add_sub_packages<'a>(
repo: &'a Repository,
@@ -182,7 +184,13 @@ mod tests {
let repo = Repository::from(btree);
let progress = ProgressBar::hidden();
- let r = Dag::for_root_package(p1, &repo, Some(&progress));
+ let condition_data = ConditionData {
+ image_name: None,
+ env: &[],
+ };
+
+ let r = Dag::for_root_package(p1, &repo, Some(&progress), &condition_data);
+
assert!(r.is_ok());
}
@@ -214,7 +222,12 @@ mod tests {
let repo = Repository::from(btree);
let progress = ProgressBar::hidden();
- let dag = Dag::for_root_package(p1, &repo, Some(&progress));
+ let condition_data = ConditionData {
+ image_name: None,
+ env: &[],
+ };
+
+ let dag = Dag::for_root_package(p1, &repo, Some(&progress), &condition_data);
assert!(dag.is_ok());
let dag = dag.unwrap();
let ps = dag.all_packages();
@@ -303,7 +316,12 @@ mod tests {
let repo = Repository::from(btree);
let progress = ProgressBar::hidden();
- let r = Dag::for_root_package(p1, &repo, Some(&progress));
+ let condition_data = ConditionData {
+ image_name: None,
+ env: &[],
+ };
+
+ let r = Dag::for_root_package(p1, &repo, Some(&progress), &condition_data);
assert!(r.is_ok());
let r = r.unwrap();
let ps = r.all_packages();
@@ -446,7 +464,12 @@ mod tests {
let repo = Repository::from(btree);
let progress = ProgressBar::hidden();
- let r = Dag::for_root_package(p1, &repo, Some(&progress));
+ let condition_data = ConditionData {
+ image_name: None,
+ env: &[],
+ };
+
+ let r = Dag::for_root_package(p1, &repo, Some(&progress), &condition_data);
assert!(r.is_ok());
let r = r.unwrap();
let ps = r.all_packages();
@@ -551,7 +574,12 @@ mod tests {
let repo = Repository::from(btree);
let progress = ProgressBar::hidden();
- let r = Dag::for_root_package(p1, &repo, Some(&progress));
+ let condition_data = ConditionData {
+ image_name: None,
+ env: &[],
+ };
+
+ let r = Dag::for_root_package(p1, &repo, Some(&progress), &condition_data);
assert!(r.is_ok());
let r = r.unwrap();
let ps = r.all_packages();