gitpush 0.0.3

A tool to run git push easily
Documentation
#![allow(unused)]
use std::{fs::read_to_string, process::ExitStatus};

use anyhow::{Context, Result};
use gitpush::find_gitpush_command;
use log::{info, warn};
use std::process::{Command,Stdio};
use regex::Regex;

fn main() -> Result<()> {
    let args: Vec<String> = std::env::args().collect();

    let output = Command::new("git")
        .arg("push")
        .args(&args[1..])
        .stdout(Stdio::inherit())
        .stderr(Stdio::piped())
        .output()
        .expect("failed to execute \"git push\"");

    let output_string = String::from_utf8_lossy(&output.stderr);
    if output.status.success() {
        if (output_string.len() > 0) {
            println!("{}", &output_string);
        }
        return Ok(());
    }

    if !output_string.contains("To push the current branch and set the remote as upstream, use") {
        println!("{}", &output_string);
        return Ok(());
    }

    let cmd_to_run = find_gitpush_command(&output_string).unwrap_or("");
    if (cmd_to_run.eq("")) {
        println!("{}", &output_string);
        return Ok(());
    }

    let args: Vec<&str> = cmd_to_run.split(" ")
        .filter(|x| *x != "git").collect();
    let output =  Command::new("git")
        .args(
            args
        )
        .stderr(Stdio::inherit())
        .stdout(Stdio::inherit())
        .output()
        .expect(&(String::from("failed to execute \" git ") + cmd_to_run + &String::from("\"")));

    Ok(())
}