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,6 +176,8 @@ fn run() -> Result<(), Error> {
} }
#[cfg(windows)] #[cfg(windows)]
{
if config.should_run(Step::PackageManagers) {
execute( execute(
&mut report, &mut report,
"Chocolatey", "Chocolatey",
@@ -183,32 +185,47 @@ fn run() -> Result<(), Error> {
config.no_retry(), 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)]
{
if config.should_run(Step::PackageManagers) {
execute( execute(
&mut report, &mut report,
"brew", "brew",
|| unix::run_homebrew(config.cleanup(), run_type), || unix::run_homebrew(config.cleanup(), run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
execute(&mut report, "nix", || unix::run_nix(run_type), config.no_retry())?;
}
#[cfg(target_os = "dragonfly")] #[cfg(target_os = "dragonfly")]
{
if config.should_run(Step::PackageManagers) {
execute( execute(
&mut report, &mut report,
"DragonFly BSD Packages", "DragonFly BSD Packages",
|| dragonfly::upgrade_packages(sudo.as_ref(), run_type), || dragonfly::upgrade_packages(sudo.as_ref(), run_type),
config.no_retry(), config.no_retry(),
)?; )?;
}
}
#[cfg(target_os = "freebsd")] #[cfg(target_os = "freebsd")]
{
if config.should_run(Step::PackageManagers) {
execute( execute(
&mut report, &mut report,
"FreeBSD Packages", "FreeBSD Packages",
|| freebsd::upgrade_packages(sudo.as_ref(), run_type), || freebsd::upgrade_packages(sudo.as_ref(), run_type),
config.no_retry(), config.no_retry(),
)?; )?;
#[cfg(unix)] }
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())
} }
} }