Skip to main content

stmo_cli/commands/
update.rs

1#![allow(clippy::missing_errors_doc)]
2
3use anyhow::Result;
4use crate::update_checker::installed_via_cargo;
5
6pub fn update() -> Result<()> {
7    if !installed_via_cargo() {
8        eprintln!("stmo-cli was not installed via `cargo install`.");
9        eprintln!("To update, use the same method you used to install it.");
10        anyhow::bail!("Not installed via cargo install");
11    }
12
13    let status = std::process::Command::new("cargo")
14        .args(["install", "stmo-cli"])
15        .status()?;
16
17    if status.success() {
18        println!("stmo-cli updated successfully.");
19        Ok(())
20    } else {
21        anyhow::bail!("cargo install stmo-cli failed");
22    }
23}