Add a flag for skipping system upgrades (fixes #53)

This commit is contained in:
Roey Darwish Dror
2018-08-13 14:39:29 +03:00
parent b9e9fad1a0
commit ab1e480b5b

View File

@@ -64,6 +64,11 @@ fn run() -> Result<(), Error> {
.short("t") .short("t")
.long("tmux"), .long("tmux"),
) )
.arg(
Arg::with_name("no_system")
.help("Don't perform system upgrade")
.long("no-system"),
)
.get_matches(); .get_matches();
if matches.is_present("tmux") && env::var("TMUX").is_err() { if matches.is_present("tmux") && env::var("TMUX").is_err() {
@@ -91,37 +96,39 @@ fn run() -> Result<(), Error> {
} }
} }
#[cfg(target_os = "linux")] if !(matches.is_present("no_system")) {
{ #[cfg(target_os = "linux")]
terminal.print_separator("System update"); {
match linux::Distribution::detect() { terminal.print_separator("System update");
Ok(distribution) => { match linux::Distribution::detect() {
match distribution { Ok(distribution) => {
linux::Distribution::Arch => linux::upgrade_arch_linux(&sudo, &mut terminal), match distribution {
linux::Distribution::CentOS => linux::upgrade_redhat(&sudo, &mut terminal), linux::Distribution::Arch => linux::upgrade_arch_linux(&sudo, &mut terminal),
linux::Distribution::Fedora => linux::upgrade_fedora(&sudo, &mut terminal), linux::Distribution::CentOS => linux::upgrade_redhat(&sudo, &mut terminal),
linux::Distribution::Ubuntu | linux::Distribution::Debian => { linux::Distribution::Fedora => linux::upgrade_fedora(&sudo, &mut terminal),
linux::upgrade_debian(&sudo, &mut terminal) linux::Distribution::Ubuntu | linux::Distribution::Debian => {
} linux::upgrade_debian(&sudo, &mut terminal)
}.report("System upgrade", &mut reports); }
} }.report("System upgrade", &mut reports);
}
Err(e) => { Err(e) => {
println!("Error detecting current distribution: {}", e); println!("Error detecting current distribution: {}", e);
}
} }
} }
}
if let Some(brew) = utils::which("brew") { if let Some(brew) = utils::which("brew") {
terminal.print_separator("Brew"); terminal.print_separator("Brew");
run_homebrew(&brew).report("Brew", &mut reports); run_homebrew(&brew).report("Brew", &mut reports);
} }
#[cfg(windows)] #[cfg(windows)]
{ {
if let Some(choco) = utils::which("choco") { if let Some(choco) = utils::which("choco") {
terminal.print_separator("Chocolatey"); terminal.print_separator("Chocolatey");
windows::run_chocolatey(&choco).report("Chocolatey", &mut reports); windows::run_chocolatey(&choco).report("Chocolatey", &mut reports);
}
} }
} }
@@ -263,8 +270,10 @@ fn run() -> Result<(), Error> {
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
{ {
terminal.print_separator("App Store"); if !(matches.is_present("no_system")) {
macos::upgrade_macos().report("App Store", &mut reports); terminal.print_separator("App Store");
macos::upgrade_macos().report("App Store", &mut reports);
}
} }
if !reports.is_empty() { if !reports.is_empty() {