Переглянути джерело

cli: Fix toolchain `solana_version` override log (#2719)

acheron 1 рік тому
батько
коміт
727e6f84cb
1 змінених файлів з 7 додано та 6 видалено
  1. 7 6
      cli/src/lib.rs

+ 7 - 6
cli/src/lib.rs

@@ -45,7 +45,7 @@ use std::ffi::OsString;
 use std::fs::{self, File};
 use std::io::prelude::*;
 use std::path::{Path, PathBuf};
-use std::process::{Child, ExitStatus, Stdio};
+use std::process::{Child, Stdio};
 use std::str::FromStr;
 use std::string::ToString;
 use tar::Archive;
@@ -519,7 +519,7 @@ fn override_toolchain(cfg_override: &ConfigOverride) -> Result<RestoreToolchainC
                 // We are overriding with `solana-install` command instead of using the binaries
                 // from `~/.local/share/solana/install/releases` because we use multiple Solana
                 // binaries in various commands.
-                fn override_solana_version(version: String) -> std::io::Result<ExitStatus> {
+                fn override_solana_version(version: String) -> std::io::Result<bool> {
                     std::process::Command::new("solana-install")
                         .arg("init")
                         .arg(&version)
@@ -527,16 +527,17 @@ fn override_toolchain(cfg_override: &ConfigOverride) -> Result<RestoreToolchainC
                         .stdout(Stdio::null())
                         .spawn()?
                         .wait()
+                        .map(|status| status.success())
                 }
 
-                match override_solana_version(solana_version.to_owned()) {
-                    Ok(_) => restore_cbs.push(Box::new(|| {
-                        match override_solana_version(current_version)?.success() {
+                match override_solana_version(solana_version.to_owned())? {
+                    true => restore_cbs.push(Box::new(|| {
+                        match override_solana_version(current_version)? {
                             true => Ok(()),
                             false => Err(anyhow!("Failed to restore `solana` version")),
                         }
                     })),
-                    Err(_) => {
+                    false => {
                         eprintln!(
                             "Failed to override `solana` version to {solana_version}, \
                         using {current_version} instead"