selene-core 0.4.2

selene-core is the backend for Selene, a local-first music player
Documentation
use std::{io, process::Command};

mod command_mutators;
pub use command_mutators::*;

pub fn ffmpeg() -> Command {
    let mut command = Command::new("ffmpeg");
    command.args(["-hide_banner", "-loglevel", "error"]);
    command
}

pub fn output_to_string(mut command: Command, stderr: bool) -> io::Result<String> {
    let output = command.output()?;

    if output.status.success() {
        if stderr {
            Ok(String::from_utf8_lossy(&output.stderr).to_string())
        } else {
            Ok(String::from_utf8_lossy(&output.stdout).to_string())
        }
    } else {
        Err(io::Error::other(
            String::from_utf8_lossy(&output.stderr).to_string(),
        ))
    }
}