diff --git a/src/linux.rs b/src/linux.rs index 7f93c74d..566ebadb 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -64,16 +64,14 @@ It's dangerous to run yay since Python based AUR packages will be installed in t } Command::new(yay).spawn()?.wait()?.check()?; + } else if let Some(sudo) = &sudo { + Command::new(&sudo) + .args(&["/usr/bin/pacman", "-Syu"]) + .spawn()? + .wait()? + .check()?; } else { - if let Some(sudo) = &sudo { - Command::new(&sudo) - .args(&["/usr/bin/pacman", "-Syu"]) - .spawn()? - .wait()? - .check()?; - } else { - terminal.print_warning("No sudo or yay detected. Skipping system upgrade"); - } + terminal.print_warning("No sudo or yay detected. Skipping system upgrade"); } Ok(()) diff --git a/src/main.rs b/src/main.rs index 6baf9070..4427a1c8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -53,6 +53,7 @@ struct StepFailed; #[fail(display = "Cannot find the user base directories")] struct NoBaseDirectories; +#[cfg_attr(feature = "cargo-clippy", allow(cyclomatic_complexity))] fn run() -> Result<(), Error> { let matches = App::new("Topgrade") .version(crate_version!()) @@ -65,7 +66,7 @@ fn run() -> Result<(), Error> { ) .get_matches(); - if matches.is_present("tmux") && !env::var("TMUX").is_ok() { + if matches.is_present("tmux") && env::var("TMUX").is_err() { #[cfg(unix)] { unix::run_in_tmux(); @@ -144,9 +145,7 @@ fn run() -> Result<(), Error> { for repo in git_repos.repositories() { terminal.print_separator(format!("Pulling {}", repo)); - if let Some(success) = git.pull(&repo).ok().and_then(|i| i) { - success.report(format!("git: {}", repo), &mut reports); - } + git.pull(&repo).report(format!("git: {}", repo), &mut reports); } #[cfg(unix)] diff --git a/src/steps.rs b/src/steps.rs index e9f06557..0021b585 100644 --- a/src/steps.rs +++ b/src/steps.rs @@ -44,7 +44,7 @@ pub fn run_vim(vim: &PathBuf, vimrc: &PathBuf, upgrade_command: &str) -> Result< .wait()? .check()?; - println!(""); + println!(); Ok(()) } diff --git a/src/terminal.rs b/src/terminal.rs index e75a344c..64d89c1d 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -22,9 +22,9 @@ impl Terminal { Some(width) => { let _ = self.stdout .set_color(ColorSpec::new().set_fg(Some(Color::White)).set_bold(true)); - let _ = write!( + let _ = writeln!( &mut self.stdout, - "\n―― {} {:―^border$}\n", + "\n―― {} {:―^border$}", message, "", border = max(2, min(80, width as usize) - 3 - message.len()) @@ -33,7 +33,7 @@ impl Terminal { let _ = self.stdout.flush(); } None => { - let _ = write!(&mut self.stdout, "―― {} ――\n", message); + let _ = writeln!(&mut self.stdout, "―― {} ――", message); } } } @@ -44,7 +44,7 @@ impl Terminal { let _ = self.stdout .set_color(ColorSpec::new().set_fg(Some(Color::Yellow)).set_bold(true)); - let _ = write!(&mut self.stdout, "{}\n", message); + let _ = writeln!(&mut self.stdout, "{}", message); let _ = self.stdout.reset(); let _ = self.stdout.flush(); } @@ -59,7 +59,7 @@ impl Terminal { .set_bold(true), ); - let _ = write!(&mut self.stdout, "{}\n", if succeeded { "OK" } else { "FAILED" }); + let _ = writeln!(&mut self.stdout, "{}", if succeeded { "OK" } else { "FAILED" }); let _ = self.stdout.reset(); let _ = self.stdout.flush();