liftinstall/src/tasks/uninstall.rs

47 lines
1 KiB
Rust
Raw Normal View History

2018-08-03 13:44:35 +00:00
//! Uninstalls a set of packages.
use installer::InstallerFramework;
use tasks::Task;
use tasks::TaskParamType;
use tasks::uninstall_pkg::UninstallPackageTask;
2018-08-06 10:51:59 +00:00
use tasks::TaskDependency;
use tasks::TaskOrdering;
2018-08-03 13:44:35 +00:00
pub struct UninstallTask {
pub items: Vec<String>,
}
impl Task for UninstallTask {
fn execute(
&mut self,
_: Vec<TaskParamType>,
_: &mut InstallerFramework,
2018-08-04 08:35:00 +00:00
messenger: &Fn(&str, f64),
2018-08-03 13:44:35 +00:00
) -> Result<TaskParamType, String> {
messenger("Wrapping up...", 0.0);
Ok(TaskParamType::None)
}
2018-08-06 10:51:59 +00:00
fn dependencies(&self) -> Vec<TaskDependency> {
let mut elements = Vec::new();
2018-08-03 13:44:35 +00:00
for item in &self.items {
2018-08-06 10:51:59 +00:00
elements.push(TaskDependency::build(
TaskOrdering::Pre,
Box::new(UninstallPackageTask {
name: item.clone(),
optional: false,
}),
));
2018-08-03 13:44:35 +00:00
}
elements
}
fn name(&self) -> String {
2018-08-04 08:35:00 +00:00
"UninstallTask".to_string()
2018-08-03 13:44:35 +00:00
}
}