releasor 1.7.0

A CLI that automates release tasks for Rust 🦀 projects, streamlining builds, .tar.gz packaging, and binary verification for a fast and consistent workflow.
Documentation
use std::process::{Command, Output};

pub struct OutputCommand;

impl OutputCommand {
    fn run(cmd: &str, args: &[&str], error: &str) -> Output {
        Command::new(cmd).args(args).output().expect(error)
    }

    pub fn cargo_release_output() -> Output {
        Self::run(
            "cargo",
            &["build", "--release"],
            "Failed to execute cargo build",
        )
    }

    pub fn tar_output(project_tar_gz: &str, project_name: &str) -> Output {
        Self::run(
            "tar",
            &[
                "-cvzf",
                project_tar_gz,
                "-C",
                "target/release",
                project_name,
            ],
            "Failed to create tar.gz",
        )
    }

    pub fn get_shasum_output(project_tar_gz: &str) -> Output {
        Self::run(
            "shasum",
            &["-a", "256", project_tar_gz],
            "Failed to execute shasum",
        )
    }
}