|
@@ -1,18 +1,18 @@
|
|
|
use librespot::playback::player::PlayerEvent;
|
|
|
use std::collections::HashMap;
|
|
|
-use std::process::Command;
|
|
|
+use std::io;
|
|
|
+use std::process::{Child, Command};
|
|
|
|
|
|
-fn run_program(program: &str, env_vars: HashMap<&str, String>) {
|
|
|
+fn run_program(program: &str, env_vars: HashMap<&str, String>) -> io::Result<Child> {
|
|
|
let mut v: Vec<&str> = program.split_whitespace().collect();
|
|
|
info!("Running {:?} with environment variables {:?}", v, env_vars);
|
|
|
Command::new(&v.remove(0))
|
|
|
.args(&v)
|
|
|
.envs(env_vars.iter())
|
|
|
.spawn()
|
|
|
- .expect("program failed to start");
|
|
|
}
|
|
|
|
|
|
-pub fn run_program_on_events(event: PlayerEvent, onevent: &str) {
|
|
|
+pub fn run_program_on_events(event: PlayerEvent, onevent: &str) -> io::Result<Child> {
|
|
|
let mut env_vars = HashMap::new();
|
|
|
match event {
|
|
|
PlayerEvent::Changed {
|
|
@@ -32,5 +32,5 @@ pub fn run_program_on_events(event: PlayerEvent, onevent: &str) {
|
|
|
env_vars.insert("TRACK_ID", track_id.to_base16());
|
|
|
}
|
|
|
}
|
|
|
- run_program(onevent, env_vars);
|
|
|
+ run_program(onevent, env_vars)
|
|
|
}
|