use anyhow::anyhow;
use log::debug;
use regex::Regex;
use std::process::Command;
pub fn get_pulseaudio_server() -> anyhow::Result<String> {
let output = Command::new("pactl").args(&["info"]).output()?.stdout;
let re = Regex::new(r"Server String: ([^\n]+)").unwrap();
let output = std::str::from_utf8(&output)?;
let caps = re.captures(output);
if caps.is_none() {
return Err(anyhow!("Could not parse pactl output!:\n{}", output));
}
let caps = caps.unwrap().get(1);
if caps.is_none() {
return Err(anyhow!("Could not parse pactl output!:\n{}", output));
}
let out = caps.unwrap().as_str().to_string();
debug!("Setting PULSE_SERVER to {}", out);
Ok(out)
}