2023-04-19 21:49:30 +02:00
|
|
|
use crate::utils::cmd::Cmd;
|
|
|
|
|
|
|
|
|
|
use super::{PackageError, PackageList, SpecificPackageManager};
|
|
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
|
pub struct DebianPackageManager;
|
|
|
|
|
|
|
|
|
|
impl SpecificPackageManager for DebianPackageManager {
|
|
|
|
|
fn name(&self) -> &'static str {
|
|
|
|
|
"apt"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn update(&self) -> Result<(), PackageError> {
|
|
|
|
|
let res = Cmd::new("apt").arg("update").run()?;
|
|
|
|
|
|
|
|
|
|
if ! res.success {
|
|
|
|
|
return Err(PackageError::CmdFail(res));
|
|
|
|
|
}
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn install(&self, list: PackageList) -> Result<(), PackageError> {
|
|
|
|
|
let res = Cmd::new("apt").arg("install").args(list.list()).run()?;
|
|
|
|
|
|
|
|
|
|
if ! res.success {
|
|
|
|
|
return Err(PackageError::CmdFail(res));
|
|
|
|
|
}
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-20 17:31:45 +02:00
|
|
|
fn remove(&self, list: PackageList) -> Result<(), PackageError> {
|
|
|
|
|
let res = Cmd::new("apt").arg("remove").args(list.list()).run()?;
|
|
|
|
|
|
|
|
|
|
if ! res.success {
|
|
|
|
|
return Err(PackageError::CmdFail(res));
|
|
|
|
|
}
|
|
|
|
|
Ok(())
|
2023-04-19 21:49:30 +02:00
|
|
|
}
|
|
|
|
|
}
|