refactor: remove unnecessary qualification (#443)

This commit is contained in:
SteveLauC
2023-05-27 17:41:42 +08:00
committed by GitHub
parent 625f823f46
commit 66860f1848
5 changed files with 68 additions and 72 deletions

View File

@@ -3,7 +3,6 @@ use std::ffi::{OsStr, OsString};
use std::path::Path; use std::path::Path;
use std::process::{Child, Command, ExitStatus, Output}; use std::process::{Child, Command, ExitStatus, Output};
use color_eyre::eyre;
use color_eyre::eyre::Result; use color_eyre::eyre::Result;
use tracing::debug; use tracing::debug;
@@ -238,7 +237,7 @@ impl CommandExt for Executor {
// TODO: It might be nice to make `output_checked_with` return something that has a // TODO: It might be nice to make `output_checked_with` return something that has a
// variant for wet/dry runs. // variant for wet/dry runs.
fn output_checked_with(&mut self, succeeded: impl Fn(&Output) -> Result<(), ()>) -> eyre::Result<Output> { fn output_checked_with(&mut self, succeeded: impl Fn(&Output) -> Result<(), ()>) -> Result<Output> {
match self { match self {
Executor::Wet(c) => c.output_checked_with(succeeded), Executor::Wet(c) => c.output_checked_with(succeeded),
Executor::Dry(c) => { Executor::Dry(c) => {
@@ -248,7 +247,7 @@ impl CommandExt for Executor {
} }
} }
fn status_checked_with(&mut self, succeeded: impl Fn(ExitStatus) -> Result<(), ()>) -> eyre::Result<()> { fn status_checked_with(&mut self, succeeded: impl Fn(ExitStatus) -> Result<(), ()>) -> Result<()> {
match self { match self {
Executor::Wet(c) => c.status_checked_with(succeeded), Executor::Wet(c) => c.status_checked_with(succeeded),
Executor::Dry(c) => { Executor::Dry(c) => {
@@ -258,7 +257,7 @@ impl CommandExt for Executor {
} }
} }
fn spawn_checked(&mut self) -> eyre::Result<Self::Child> { fn spawn_checked(&mut self) -> Result<Self::Child> {
self.spawn() self.spawn()
} }
} }

View File

@@ -54,13 +54,13 @@ fn run() -> Result<()> {
if let Some(shell) = opt.gen_completion { if let Some(shell) = opt.gen_completion {
let cmd = &mut CommandLineArgs::command(); let cmd = &mut CommandLineArgs::command();
clap_complete::generate(shell, cmd, clap::crate_name!(), &mut std::io::stdout()); clap_complete::generate(shell, cmd, clap::crate_name!(), &mut io::stdout());
return Ok(()); return Ok(());
} }
if opt.gen_manpage { if opt.gen_manpage {
let man = clap_mangen::Man::new(CommandLineArgs::command()); let man = clap_mangen::Man::new(CommandLineArgs::command());
man.render(&mut std::io::stdout())?; man.render(&mut io::stdout())?;
return Ok(()); return Ok(());
} }
@@ -79,14 +79,14 @@ fn run() -> Result<()> {
}; };
if opt.show_config_reference() { if opt.show_config_reference() {
print!("{}", crate::config::EXAMPLE_CONFIG); print!("{}", config::EXAMPLE_CONFIG);
return Ok(()); return Ok(());
} }
let config = Config::load(opt)?; let config = Config::load(opt)?;
terminal::set_title(config.set_title()); set_title(config.set_title());
terminal::display_time(config.display_time()); display_time(config.display_time());
terminal::set_desktop_notifications(config.notify_each_step()); set_desktop_notifications(config.notify_each_step());
debug!("Version: {}", crate_version!()); debug!("Version: {}", crate_version!());
debug!("OS: {}", env!("TARGET")); debug!("OS: {}", env!("TARGET"));
@@ -166,7 +166,7 @@ fn run() -> Result<()> {
if let Some(topgrades) = config.remote_topgrades() { if let Some(topgrades) = config.remote_topgrades() {
for remote_topgrade in topgrades.iter().filter(|t| config.should_execute_remote(t)) { for remote_topgrade in topgrades.iter().filter(|t| config.should_execute_remote(t)) {
runner.execute(Step::Remotes, format!("Remote ({remote_topgrade})"), || { runner.execute(Step::Remotes, format!("Remote ({remote_topgrade})"), || {
remote::ssh::ssh_step(&ctx, remote_topgrade) ssh::ssh_step(&ctx, remote_topgrade)
})?; })?;
} }
} }
@@ -513,7 +513,7 @@ fn run() -> Result<()> {
let failed = post_command_failed || runner.report().data().iter().any(|(_, result)| result.failed()); let failed = post_command_failed || runner.report().data().iter().any(|(_, result)| result.failed());
if !config.skip_notify() { if !config.skip_notify() {
terminal::notify_desktop( notify_desktop(
format!( format!(
"Topgrade finished {}", "Topgrade finished {}",
if failed { "with errors" } else { "successfully" } if failed { "with errors" } else { "successfully" }

View File

@@ -28,7 +28,7 @@ pub fn run_cargo_update(ctx: &ExecutionContext) -> Result<()> {
.map(PathBuf::from) .map(PathBuf::from)
.unwrap_or_else(|| HOME_DIR.join(".cargo")) .unwrap_or_else(|| HOME_DIR.join(".cargo"))
.require()?; .require()?;
utils::require("cargo").or_else(|_| { require("cargo").or_else(|_| {
require_option( require_option(
cargo_dir.join("bin/cargo").if_exists(), cargo_dir.join("bin/cargo").if_exists(),
String::from("No cargo detected"), String::from("No cargo detected"),
@@ -42,7 +42,7 @@ pub fn run_cargo_update(ctx: &ExecutionContext) -> Result<()> {
} }
print_separator("Cargo"); print_separator("Cargo");
let cargo_update = utils::require("cargo-install-update") let cargo_update = require("cargo-install-update")
.ok() .ok()
.or_else(|| cargo_dir.join("bin/cargo-install-update").if_exists()); .or_else(|| cargo_dir.join("bin/cargo-install-update").if_exists());
let cargo_update = match cargo_update { let cargo_update = match cargo_update {
@@ -60,7 +60,7 @@ pub fn run_cargo_update(ctx: &ExecutionContext) -> Result<()> {
.status_checked()?; .status_checked()?;
if ctx.config().cleanup() { if ctx.config().cleanup() {
let cargo_cache = utils::require("cargo-cache") let cargo_cache = require("cargo-cache")
.ok() .ok()
.or_else(|| cargo_dir.join("bin/cargo-cache").if_exists()); .or_else(|| cargo_dir.join("bin/cargo-cache").if_exists());
match cargo_cache { match cargo_cache {
@@ -78,14 +78,14 @@ pub fn run_cargo_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_flutter_upgrade(ctx: &ExecutionContext) -> Result<()> { pub fn run_flutter_upgrade(ctx: &ExecutionContext) -> Result<()> {
let flutter = utils::require("flutter")?; let flutter = require("flutter")?;
print_separator("Flutter"); print_separator("Flutter");
ctx.run_type().execute(flutter).arg("upgrade").status_checked() ctx.run_type().execute(flutter).arg("upgrade").status_checked()
} }
pub fn run_gem(ctx: &ExecutionContext) -> Result<()> { pub fn run_gem(ctx: &ExecutionContext) -> Result<()> {
let gem = utils::require("gem")?; let gem = require("gem")?;
HOME_DIR.join(".gem").require()?; HOME_DIR.join(".gem").require()?;
print_separator("Gems"); print_separator("Gems");
@@ -113,7 +113,7 @@ pub fn run_rubygems(ctx: &ExecutionContext) -> Result<()> {
.args(["update", "--system"]) .args(["update", "--system"])
.status_checked()?; .status_checked()?;
} else if let Some(sudo) = &ctx.sudo() { } else if let Some(sudo) = &ctx.sudo() {
if !std::path::Path::new("/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb").exists() { if !Path::new("/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb").exists() {
ctx.run_type() ctx.run_type()
.execute(sudo) .execute(sudo)
.arg("-EH") .arg("-EH")
@@ -128,7 +128,7 @@ pub fn run_rubygems(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_haxelib_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_haxelib_update(ctx: &ExecutionContext) -> Result<()> {
let haxelib = utils::require("haxelib")?; let haxelib = require("haxelib")?;
let haxelib_dir = let haxelib_dir =
PathBuf::from(std::str::from_utf8(&Command::new(&haxelib).arg("config").output_checked()?.stdout)?.trim()) PathBuf::from(std::str::from_utf8(&Command::new(&haxelib).arg("config").output_checked()?.stdout)?.trim())
@@ -153,7 +153,7 @@ pub fn run_haxelib_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_sheldon(ctx: &ExecutionContext) -> Result<()> { pub fn run_sheldon(ctx: &ExecutionContext) -> Result<()> {
let sheldon = utils::require("sheldon")?; let sheldon = require("sheldon")?;
print_separator("Sheldon"); print_separator("Sheldon");
@@ -164,7 +164,7 @@ pub fn run_sheldon(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_fossil(ctx: &ExecutionContext) -> Result<()> { pub fn run_fossil(ctx: &ExecutionContext) -> Result<()> {
let fossil = utils::require("fossil")?; let fossil = require("fossil")?;
print_separator("Fossil"); print_separator("Fossil");
@@ -172,7 +172,7 @@ pub fn run_fossil(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_micro(ctx: &ExecutionContext) -> Result<()> { pub fn run_micro(ctx: &ExecutionContext) -> Result<()> {
let micro = utils::require("micro")?; let micro = require("micro")?;
print_separator("micro"); print_separator("micro");
@@ -198,7 +198,7 @@ pub fn run_micro(ctx: &ExecutionContext) -> Result<()> {
target_os = "dragonfly" target_os = "dragonfly"
)))] )))]
pub fn run_apm(ctx: &ExecutionContext) -> Result<()> { pub fn run_apm(ctx: &ExecutionContext) -> Result<()> {
let apm = utils::require("apm")?; let apm = require("apm")?;
print_separator("Atom Package Manager"); print_separator("Atom Package Manager");
@@ -209,14 +209,14 @@ pub fn run_apm(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_rustup(ctx: &ExecutionContext) -> Result<()> { pub fn run_rustup(ctx: &ExecutionContext) -> Result<()> {
let rustup = utils::require("rustup")?; let rustup = require("rustup")?;
print_separator("rustup"); print_separator("rustup");
ctx.run_type().execute(rustup).arg("update").status_checked() ctx.run_type().execute(rustup).arg("update").status_checked()
} }
pub fn run_juliaup(ctx: &ExecutionContext) -> Result<()> { pub fn run_juliaup(ctx: &ExecutionContext) -> Result<()> {
let juliaup = utils::require("juliaup")?; let juliaup = require("juliaup")?;
print_separator("juliaup"); print_separator("juliaup");
@@ -231,7 +231,7 @@ pub fn run_juliaup(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_choosenim(ctx: &ExecutionContext) -> Result<()> { pub fn run_choosenim(ctx: &ExecutionContext) -> Result<()> {
let choosenim = utils::require("choosenim")?; let choosenim = require("choosenim")?;
print_separator("choosenim"); print_separator("choosenim");
let run_type = ctx.run_type(); let run_type = ctx.run_type();
@@ -241,7 +241,7 @@ pub fn run_choosenim(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_krew_upgrade(ctx: &ExecutionContext) -> Result<()> { pub fn run_krew_upgrade(ctx: &ExecutionContext) -> Result<()> {
let krew = utils::require("kubectl-krew")?; let krew = require("kubectl-krew")?;
print_separator("Krew"); print_separator("Krew");
@@ -249,7 +249,7 @@ pub fn run_krew_upgrade(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_gcloud_components_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_gcloud_components_update(ctx: &ExecutionContext) -> Result<()> {
let gcloud = utils::require("gcloud")?; let gcloud = require("gcloud")?;
if gcloud.starts_with("/snap") { if gcloud.starts_with("/snap") {
Ok(()) Ok(())
@@ -264,7 +264,7 @@ pub fn run_gcloud_components_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_jetpack(ctx: &ExecutionContext) -> Result<()> { pub fn run_jetpack(ctx: &ExecutionContext) -> Result<()> {
let jetpack = utils::require("jetpack")?; let jetpack = require("jetpack")?;
print_separator("Jetpack"); print_separator("Jetpack");
@@ -275,7 +275,7 @@ pub fn run_jetpack(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_rtcl(ctx: &ExecutionContext) -> Result<()> { pub fn run_rtcl(ctx: &ExecutionContext) -> Result<()> {
let rupdate = utils::require("rupdate")?; let rupdate = require("rupdate")?;
print_separator("rtcl"); print_separator("rtcl");
@@ -283,7 +283,7 @@ pub fn run_rtcl(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_opam_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_opam_update(ctx: &ExecutionContext) -> Result<()> {
let opam = utils::require("opam")?; let opam = require("opam")?;
print_separator("OCaml Package Manager"); print_separator("OCaml Package Manager");
@@ -298,7 +298,7 @@ pub fn run_opam_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_vcpkg_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_vcpkg_update(ctx: &ExecutionContext) -> Result<()> {
let vcpkg = utils::require("vcpkg")?; let vcpkg = require("vcpkg")?;
print_separator("vcpkg"); print_separator("vcpkg");
#[cfg(unix)] #[cfg(unix)]
@@ -321,14 +321,14 @@ pub fn run_vcpkg_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_pipx_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_pipx_update(ctx: &ExecutionContext) -> Result<()> {
let pipx = utils::require("pipx")?; let pipx = require("pipx")?;
print_separator("pipx"); print_separator("pipx");
ctx.run_type().execute(pipx).arg("upgrade-all").status_checked() ctx.run_type().execute(pipx).arg("upgrade-all").status_checked()
} }
pub fn run_conda_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_conda_update(ctx: &ExecutionContext) -> Result<()> {
let conda = utils::require("conda")?; let conda = require("conda")?;
let output = Command::new("conda") let output = Command::new("conda")
.args(["config", "--show", "auto_activate_base"]) .args(["config", "--show", "auto_activate_base"])
@@ -349,7 +349,7 @@ pub fn run_conda_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_mamba_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_mamba_update(ctx: &ExecutionContext) -> Result<()> {
let mamba = utils::require("mamba")?; let mamba = require("mamba")?;
let output = Command::new("mamba") let output = Command::new("mamba")
.args(["config", "--show", "auto_activate_base"]) .args(["config", "--show", "auto_activate_base"])
@@ -370,7 +370,7 @@ pub fn run_mamba_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_pip3_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_pip3_update(ctx: &ExecutionContext) -> Result<()> {
let python3 = utils::require("python3")?; let python3 = require("python3")?;
Command::new(&python3) Command::new(&python3)
.args(["-m", "pip"]) .args(["-m", "pip"])
.output_checked_utf8() .output_checked_utf8()
@@ -392,7 +392,7 @@ pub fn run_pip3_update(ctx: &ExecutionContext) -> Result<()> {
})?; })?;
print_separator("pip3"); print_separator("pip3");
if std::env::var("VIRTUAL_ENV").is_ok() { if env::var("VIRTUAL_ENV").is_ok() {
print_warning("This step is will be skipped when running inside a virtual environment"); print_warning("This step is will be skipped when running inside a virtual environment");
return Err(SkipStep("Does not run inside a virtual environment".to_string()).into()); return Err(SkipStep("Does not run inside a virtual environment".to_string()).into());
} }
@@ -456,21 +456,21 @@ pub fn run_pipupgrade_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_stack_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_stack_update(ctx: &ExecutionContext) -> Result<()> {
if utils::require("ghcup").is_ok() { if require("ghcup").is_ok() {
// `ghcup` is present and probably(?) being used to install `stack`. // `ghcup` is present and probably(?) being used to install `stack`.
// Don't upgrade `stack`, let `ghcup` handle it. Per `ghcup install stack`: // Don't upgrade `stack`, let `ghcup` handle it. Per `ghcup install stack`:
// !!! Additionally, you should upgrade stack only through ghcup and not use 'stack upgrade' !!! // !!! Additionally, you should upgrade stack only through ghcup and not use 'stack upgrade' !!!
return Ok(()); return Ok(());
} }
let stack = utils::require("stack")?; let stack = require("stack")?;
print_separator("stack"); print_separator("stack");
ctx.run_type().execute(stack).arg("upgrade").status_checked() ctx.run_type().execute(stack).arg("upgrade").status_checked()
} }
pub fn run_ghcup_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_ghcup_update(ctx: &ExecutionContext) -> Result<()> {
let ghcup = utils::require("ghcup")?; let ghcup = require("ghcup")?;
print_separator("ghcup"); print_separator("ghcup");
ctx.run_type().execute(ghcup).arg("upgrade").status_checked() ctx.run_type().execute(ghcup).arg("upgrade").status_checked()
@@ -485,8 +485,8 @@ pub fn run_tlmgr_update(ctx: &ExecutionContext) -> Result<()> {
} }
} }
let tlmgr = utils::require("tlmgr")?; let tlmgr = require("tlmgr")?;
let kpsewhich = utils::require("kpsewhich")?; let kpsewhich = require("kpsewhich")?;
let tlmgr_directory = { let tlmgr_directory = {
let mut d = PathBuf::from( let mut d = PathBuf::from(
&Command::new(kpsewhich) &Command::new(kpsewhich)
@@ -520,7 +520,7 @@ pub fn run_tlmgr_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_chezmoi_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_chezmoi_update(ctx: &ExecutionContext) -> Result<()> {
let chezmoi = utils::require("chezmoi")?; let chezmoi = require("chezmoi")?;
HOME_DIR.join(".local/share/chezmoi").require()?; HOME_DIR.join(".local/share/chezmoi").require()?;
print_separator("chezmoi"); print_separator("chezmoi");
@@ -529,7 +529,7 @@ pub fn run_chezmoi_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_myrepos_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_myrepos_update(ctx: &ExecutionContext) -> Result<()> {
let myrepos = utils::require("mr")?; let myrepos = require("mr")?;
HOME_DIR.join(".mrconfig").require()?; HOME_DIR.join(".mrconfig").require()?;
print_separator("myrepos"); print_separator("myrepos");
@@ -562,7 +562,7 @@ pub fn run_custom_command(name: &str, command: &str, ctx: &ExecutionContext) ->
} }
pub fn run_composer_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_composer_update(ctx: &ExecutionContext) -> Result<()> {
let composer = utils::require("composer")?; let composer = require("composer")?;
let composer_home = Command::new(&composer) let composer_home = Command::new(&composer)
.args(["global", "config", "--absolute", "--quiet", "home"]) .args(["global", "config", "--absolute", "--quiet", "home"])
.output_checked_utf8() .output_checked_utf8()
@@ -607,7 +607,7 @@ pub fn run_composer_update(ctx: &ExecutionContext) -> Result<()> {
let output: Utf8Output = output.try_into()?; let output: Utf8Output = output.try_into()?;
print!("{}\n{}", output.stdout, output.stderr); print!("{}\n{}", output.stdout, output.stderr);
if output.stdout.contains("valet") || output.stderr.contains("valet") { if output.stdout.contains("valet") || output.stderr.contains("valet") {
if let Some(valet) = utils::which("valet") { if let Some(valet) = which("valet") {
ctx.run_type().execute(valet).arg("install").status_checked()?; ctx.run_type().execute(valet).arg("install").status_checked()?;
} }
} }
@@ -617,7 +617,7 @@ pub fn run_composer_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_dotnet_upgrade(ctx: &ExecutionContext) -> Result<()> { pub fn run_dotnet_upgrade(ctx: &ExecutionContext) -> Result<()> {
let dotnet = utils::require("dotnet")?; let dotnet = require("dotnet")?;
// Skip when the `dotnet tool list` subcommand fails. // Skip when the `dotnet tool list` subcommand fails.
// (This is expected when a dotnet runtime is installed but no SDK.) // (This is expected when a dotnet runtime is installed but no SDK.)
@@ -670,7 +670,7 @@ pub fn run_dotnet_upgrade(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_helix_grammars(ctx: &ExecutionContext) -> Result<()> { pub fn run_helix_grammars(ctx: &ExecutionContext) -> Result<()> {
utils::require("helix")?; require("helix")?;
print_separator("Helix"); print_separator("Helix");
@@ -690,7 +690,7 @@ pub fn run_helix_grammars(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_raco_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_raco_update(ctx: &ExecutionContext) -> Result<()> {
let raco = utils::require("raco")?; let raco = require("raco")?;
print_separator("Racket Package Manager"); print_separator("Racket Package Manager");
@@ -701,21 +701,21 @@ pub fn run_raco_update(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn bin_update(ctx: &ExecutionContext) -> Result<()> { pub fn bin_update(ctx: &ExecutionContext) -> Result<()> {
let bin = utils::require("bin")?; let bin = require("bin")?;
print_separator("Bin"); print_separator("Bin");
ctx.run_type().execute(bin).arg("update").status_checked() ctx.run_type().execute(bin).arg("update").status_checked()
} }
pub fn spicetify_upgrade(ctx: &ExecutionContext) -> Result<()> { pub fn spicetify_upgrade(ctx: &ExecutionContext) -> Result<()> {
let spicetify = utils::require("spicetify")?; let spicetify = require("spicetify")?;
print_separator("Spicetify"); print_separator("Spicetify");
ctx.run_type().execute(spicetify).arg("upgrade").status_checked() ctx.run_type().execute(spicetify).arg("upgrade").status_checked()
} }
pub fn run_ghcli_extensions_upgrade(ctx: &ExecutionContext) -> Result<()> { pub fn run_ghcli_extensions_upgrade(ctx: &ExecutionContext) -> Result<()> {
let gh = utils::require("gh")?; let gh = require("gh")?;
let result = Command::new(&gh).args(["extensions", "list"]).output_checked_utf8(); let result = Command::new(&gh).args(["extensions", "list"]).output_checked_utf8();
if result.is_err() { if result.is_err() {
debug!("GH result {:?}", result); debug!("GH result {:?}", result);
@@ -730,7 +730,7 @@ pub fn run_ghcli_extensions_upgrade(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn update_julia_packages(ctx: &ExecutionContext) -> Result<()> { pub fn update_julia_packages(ctx: &ExecutionContext) -> Result<()> {
let julia = utils::require("julia")?; let julia = require("julia")?;
print_separator("Julia Packages"); print_separator("Julia Packages");
@@ -741,7 +741,7 @@ pub fn update_julia_packages(ctx: &ExecutionContext) -> Result<()> {
} }
pub fn run_helm_repo_update(ctx: &ExecutionContext) -> Result<()> { pub fn run_helm_repo_update(ctx: &ExecutionContext) -> Result<()> {
let helm = utils::require("helm")?; let helm = require("helm")?;
print_separator("Helm"); print_separator("Helm");

View File

@@ -40,7 +40,7 @@ pub enum Distribution {
} }
impl Distribution { impl Distribution {
fn parse_os_release(os_release: &ini::Ini) -> Result<Self> { fn parse_os_release(os_release: &Ini) -> Result<Self> {
let section = os_release.general_section(); let section = os_release.general_section();
let id = section.get("ID"); let id = section.get("ID");
let variant: Option<Vec<&str>> = section.get("VARIANT").map(|s| s.split_whitespace().collect()); let variant: Option<Vec<&str>> = section.get("VARIANT").map(|s| s.split_whitespace().collect());
@@ -51,14 +51,14 @@ impl Distribution {
Some("centos") | Some("rhel") | Some("ol") => Distribution::CentOS, Some("centos") | Some("rhel") | Some("ol") => Distribution::CentOS,
Some("clear-linux-os") => Distribution::ClearLinux, Some("clear-linux-os") => Distribution::ClearLinux,
Some("fedora") | Some("nobara") => { Some("fedora") | Some("nobara") => {
if let Some(variant) = variant { return if let Some(variant) = variant {
if variant.contains(&"Silverblue") { if variant.contains(&"Silverblue") {
return Ok(Distribution::FedoraSilverblue); Ok(Distribution::FedoraSilverblue)
} else { } else {
return Ok(Distribution::Fedora); Ok(Distribution::Fedora)
}; }
} else { } else {
return Ok(Distribution::Fedora); Ok(Distribution::Fedora)
} }
} }
@@ -81,11 +81,11 @@ impl Distribution {
return Ok(Distribution::CentOS); return Ok(Distribution::CentOS);
} else if id_like.contains(&"suse") { } else if id_like.contains(&"suse") {
let id_variant = id.unwrap_or_default(); let id_variant = id.unwrap_or_default();
if id_variant.contains("tumbleweed") { return if id_variant.contains("tumbleweed") {
return Ok(Distribution::OpenSuseTumbleweed); Ok(Distribution::OpenSuseTumbleweed)
} else { } else {
return Ok(Distribution::Suse); Ok(Distribution::Suse)
} };
} else if id_like.contains(&"arch") || id_like.contains(&"archlinux") { } else if id_like.contains(&"arch") || id_like.contains(&"archlinux") {
return Ok(Distribution::Arch); return Ok(Distribution::Arch);
} else if id_like.contains(&"alpine") { } else if id_like.contains(&"alpine") {

View File

@@ -2,10 +2,7 @@ use std::fs;
use std::os::unix::fs::MetadataExt; use std::os::unix::fs::MetadataExt;
use std::path::PathBuf; use std::path::PathBuf;
use std::process::Command; use std::process::Command;
use std::{ use std::{env::var, path::Path};
env::{self, var},
path::Path,
};
use crate::command::CommandExt; use crate::command::CommandExt;
use crate::{Step, HOME_DIR}; use crate::{Step, HOME_DIR};
@@ -229,7 +226,7 @@ pub fn run_fundle(ctx: &ExecutionContext) -> Result<()> {
pub fn upgrade_gnome_extensions(ctx: &ExecutionContext) -> Result<()> { pub fn upgrade_gnome_extensions(ctx: &ExecutionContext) -> Result<()> {
let gdbus = require("gdbus")?; let gdbus = require("gdbus")?;
require_option( require_option(
env::var("XDG_CURRENT_DESKTOP").ok().filter(|p| p.contains("GNOME")), var("XDG_CURRENT_DESKTOP").ok().filter(|p| p.contains("GNOME")),
"Desktop doest not appear to be gnome".to_string(), "Desktop doest not appear to be gnome".to_string(),
)?; )?;
let output = Command::new("gdbus") let output = Command::new("gdbus")
@@ -407,7 +404,7 @@ pub fn run_nix(ctx: &ExecutionContext) -> Result<()> {
run_type.execute(nix_channel).arg("--update").status_checked()?; run_type.execute(nix_channel).arg("--update").status_checked()?;
if std::path::Path::new(&manifest_json_path).exists() { if Path::new(&manifest_json_path).exists() {
run_type run_type
.execute(&nix) .execute(&nix)
.arg("profile") .arg("profile")
@@ -466,7 +463,7 @@ pub fn run_pearl(ctx: &ExecutionContext) -> Result<()> {
pub fn run_sdkman(cleanup: bool, ctx: &ExecutionContext) -> Result<()> { pub fn run_sdkman(cleanup: bool, ctx: &ExecutionContext) -> Result<()> {
let bash = require("bash")?; let bash = require("bash")?;
let sdkman_init_path = env::var("SDKMAN_DIR") let sdkman_init_path = var("SDKMAN_DIR")
.map(PathBuf::from) .map(PathBuf::from)
.unwrap_or_else(|_| HOME_DIR.join(".sdkman")) .unwrap_or_else(|_| HOME_DIR.join(".sdkman"))
.join("bin") .join("bin")
@@ -476,7 +473,7 @@ pub fn run_sdkman(cleanup: bool, ctx: &ExecutionContext) -> Result<()> {
print_separator("SDKMAN!"); print_separator("SDKMAN!");
let sdkman_config_path = env::var("SDKMAN_DIR") let sdkman_config_path = var("SDKMAN_DIR")
.map(PathBuf::from) .map(PathBuf::from)
.unwrap_or_else(|_| HOME_DIR.join(".sdkman")) .unwrap_or_else(|_| HOME_DIR.join(".sdkman"))
.join("etc") .join("etc")