stmo-cli 0.6.0

CLI for version controlling Redash queries and dashboards
Documentation
#![allow(clippy::missing_errors_doc)]

use anyhow::Result;

pub fn update() -> Result<()> {
    let status = std::process::Command::new("cargo")
        .args(["binstall", "--no-confirm", "stmo-cli"])
        .status();

    match status {
        Ok(s) if s.success() => {
            println!("stmo-cli updated successfully.");
            return Ok(());
        }
        _ => eprintln!("cargo binstall not available, falling back to cargo install"),
    }

    let status = std::process::Command::new("cargo")
        .args(["install", "stmo-cli"])
        .status()?;

    if status.success() {
        println!("stmo-cli updated successfully.");
        Ok(())
    } else {
        anyhow::bail!("cargo install stmo-cli failed");
    }
}