139: Added support for Solus Linux distro r=r-darwish a=l1a

Solus uses "eopkg" for system package management.

Co-authored-by: Ken Tobias <kentobias@gmail.com>
This commit is contained in:
bors[bot]
2019-03-23 18:17:03 +00:00

View File

@@ -17,6 +17,7 @@ pub enum Distribution {
Gentoo,
OpenSuse,
Void,
Solus,
}
impl Distribution {
@@ -51,6 +52,10 @@ impl Distribution {
return Ok(Distribution::Void);
}
if content.contains("Solus") {
return Ok(Distribution::Solus);
}
if PathBuf::from("/etc/gentoo-release").exists() {
return Ok(Distribution::Gentoo);
}
@@ -70,6 +75,7 @@ impl Distribution {
Distribution::Gentoo => upgrade_gentoo(&sudo, run_type),
Distribution::OpenSuse => upgrade_opensuse(&sudo, run_type),
Distribution::Void => upgrade_void(&sudo, run_type),
Distribution::Solus => upgrade_solus(&sudo, run_type),
}
}
@@ -233,6 +239,19 @@ fn upgrade_debian(sudo: &Option<PathBuf>, cleanup: bool, run_type: RunType) -> R
Ok(())
}
fn upgrade_solus(sudo: &Option<PathBuf>, run_type: RunType) -> Result<(), Error> {
if let Some(sudo) = &sudo {
run_type
.execute(&sudo)
.args(&["/usr/bin/eopkg", "upgrade"])
.check_run()?;
} else {
print_warning("No sudo detected. Skipping system upgrade");
}
Ok(())
}
pub fn run_needrestart(sudo: Option<&PathBuf>, run_type: RunType) -> Result<(), Error> {
let sudo = require_option(sudo)?;
let needrestart = require("needrestart")?;