nedots 0.1.7

A tool to manage configuration files/(ne)dots.
Documentation
pub mod paths;
pub use paths::join_paths;
pub mod spinner;

use crate::errors::Error;
use std::process::Command;

pub fn run_cmd(prog: &str, args: &[&str]) -> anyhow::Result<()> {
    log::trace!("`{} {}`...", prog, args.join(" "));

    let output = Command::new(prog).args(args).output()?;
    if !output.status.success() {
        if !output.stderr.is_empty() {
            eprintln!("{}", String::from_utf8(output.stderr)?);
        }

        if log::log_enabled!(log::Level::Trace) && !output.stdout.is_empty() {
            println!("{}", String::from_utf8(output.stdout)?);
        }

        return Err(Error::Command(format!("`{} {}` failed", prog, args.join(" "))).into());
    }

    Ok(())
}

pub fn get_timestamp() -> String {
    format!("{}", chrono::offset::Local::now().timestamp())
}