Show packager and executor in summary
This commit is contained in:
parent
8d424e6c6a
commit
fcfe3713aa
@ -217,24 +217,32 @@ impl Updater {
|
|||||||
let mut status: Vec<_> = vec![];
|
let mut status: Vec<_> = vec![];
|
||||||
|
|
||||||
// XXX: We may parallelise (iter_par from rayon?) this loop. But the UI will be problematic to handle
|
// XXX: We may parallelise (iter_par from rayon?) this loop. But the UI will be problematic to handle
|
||||||
for (_packager_name, packager) in &self.packagers {
|
for (packager_name, packager) in &self.packagers {
|
||||||
// TODO: default status should be an error, but… in the same time we should not have en empty list
|
// TODO: default status should be an error, but… in the same time we should not have en empty list
|
||||||
let mut stat = (String::from("No command"), Ok(()).into());
|
let mut record = Record {
|
||||||
|
packager: String::from("No packager"),
|
||||||
|
executor: String::from("No executor"),
|
||||||
|
status: Ok(()).into(),
|
||||||
|
};
|
||||||
|
|
||||||
assert!(!packager.executors.is_empty());
|
assert!(!packager.executors.is_empty());
|
||||||
|
|
||||||
for pkg in &packager.executors {
|
for executor in &packager.executors {
|
||||||
let u = self.update(&pkg, opt);
|
let u = self.update(&executor, opt);
|
||||||
let is_ok = u.is_ok();
|
let is_ok = u.is_ok();
|
||||||
|
|
||||||
stat = (pkg.name.clone(), u.into());
|
record = Record {
|
||||||
|
packager: packager_name.to_string(),
|
||||||
|
executor: executor.name.clone(),
|
||||||
|
status: u.into(),
|
||||||
|
};
|
||||||
|
|
||||||
if is_ok {
|
if is_ok {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
status.push(stat);
|
status.push(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
Summary { status }
|
Summary { status }
|
||||||
|
21
src/lib.rs
21
src/lib.rs
@ -21,18 +21,33 @@ pub struct Opt {
|
|||||||
pub steps: Vec<UpdateSteps>,
|
pub steps: Vec<UpdateSteps>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub struct Record {
|
||||||
|
packager: String,
|
||||||
|
executor: String,
|
||||||
|
status: Status,
|
||||||
|
}
|
||||||
|
impl Display for Record {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
write!(
|
||||||
|
f,
|
||||||
|
"\t{} ({})\t{}",
|
||||||
|
&self.packager, &self.executor, &self.status
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub struct Summary {
|
pub struct Summary {
|
||||||
status: Vec<(String, Status)>,
|
status: Vec<Record>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Display for Summary {
|
impl Display for Summary {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
writeln!(f, "")?;
|
writeln!(f, "")?;
|
||||||
writeln!(f, "*** Summary: ***")?;
|
writeln!(f, "*** Summary: ***")?;
|
||||||
for (name, status) in &self.status {
|
for record in &self.status {
|
||||||
// TODO: also print version before/after, update time
|
// TODO: also print version before/after, update time
|
||||||
|
|
||||||
writeln!(f, "\t{}\t{}", name, status)?;
|
writeln!(f, "{record}")?;
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user