Add ability to disable package managers (fix #206)

This commit is contained in:
Roey Darwish Dror
2019-09-28 14:49:24 +03:00
parent f6b4bb00b2
commit cfce9775df
2 changed files with 49 additions and 30 deletions

View File

@@ -24,6 +24,8 @@ type Commands = BTreeMap<String, String>;
pub enum Step { pub enum Step {
/// Don't perform system upgrade /// Don't perform system upgrade
System, System,
/// Don't perform upgrades of package managers
PackageManagers,
/// Don't pull git repositories /// Don't pull git repositories
GitRepos, GitRepos,
/// Don't upgrade Vim packages or configuration files /// Don't upgrade Vim packages or configuration files

View File

@@ -176,39 +176,56 @@ fn run() -> Result<(), Error> {
} }
#[cfg(windows)] #[cfg(windows)]
execute( {
&mut report, if config.should_run(Step::PackageManagers) {
"Chocolatey", execute(
|| windows::run_chocolatey(run_type), &mut report,
config.no_retry(), "Chocolatey",
)?; || windows::run_chocolatey(run_type),
config.no_retry(),
)?;
#[cfg(windows)] execute(&mut report, "Scoop", || windows::run_scoop(run_type), config.no_retry())?;
execute(&mut report, "Scoop", || windows::run_scoop(run_type), config.no_retry())?; }
}
#[cfg(unix)] #[cfg(unix)]
execute( {
&mut report, if config.should_run(Step::PackageManagers) {
"brew", execute(
|| unix::run_homebrew(config.cleanup(), run_type), &mut report,
config.no_retry(), "brew",
)?; || unix::run_homebrew(config.cleanup(), run_type),
config.no_retry(),
)?;
}
execute(&mut report, "nix", || unix::run_nix(run_type), config.no_retry())?;
}
#[cfg(target_os = "dragonfly")] #[cfg(target_os = "dragonfly")]
execute( {
&mut report, if config.should_run(Step::PackageManagers) {
"DragonFly BSD Packages", execute(
|| dragonfly::upgrade_packages(sudo.as_ref(), run_type), &mut report,
config.no_retry(), "DragonFly BSD Packages",
)?; || dragonfly::upgrade_packages(sudo.as_ref(), run_type),
config.no_retry(),
)?;
}
}
#[cfg(target_os = "freebsd")] #[cfg(target_os = "freebsd")]
execute( {
&mut report, if config.should_run(Step::PackageManagers) {
"FreeBSD Packages", execute(
|| freebsd::upgrade_packages(sudo.as_ref(), run_type), &mut report,
config.no_retry(), "FreeBSD Packages",
)?; || freebsd::upgrade_packages(sudo.as_ref(), run_type),
#[cfg(unix)] config.no_retry(),
execute(&mut report, "nix", || unix::run_nix(run_type), config.no_retry())?; )?;
}
}
let emacs = emacs::Emacs::new(&base_dirs); let emacs = emacs::Emacs::new(&base_dirs);
if config.should_run(Step::Emacs) { if config.should_run(Step::Emacs) {
@@ -405,7 +422,7 @@ fn run() -> Result<(), Error> {
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
{ {
if config.should_run(Step::System) { if config.should_run(Step::PackageManagers) {
execute( execute(
&mut report, &mut report,
"Flatpak", "Flatpak",
@@ -551,7 +568,7 @@ fn run() -> Result<(), Error> {
if report.data().iter().all(|(_, succeeded)| *succeeded) { if report.data().iter().all(|(_, succeeded)| *succeeded) {
Ok(()) Ok(())
} else { } else {
Err(ErrorKind::StepFailed)? Err(ErrorKind::StepFailed.into())
} }
} }