beets: make beets command async
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
use std::process::{Command, Stdio};
|
use std::process::Stdio;
|
||||||
|
|
||||||
|
use tokio::process::Command;
|
||||||
|
|
||||||
use schemars::JsonSchema;
|
use schemars::JsonSchema;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
@@ -111,7 +113,7 @@ impl DataSource for BeetsDB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log::debug!("Executing beets: {:?}", beets_cmd);
|
log::debug!("Executing beets: {:?}", beets_cmd);
|
||||||
if let Ok(output) = beets_cmd.stdout(Stdio::piped()).stderr(Stdio::null()).spawn().unwrap().wait_with_output() {
|
if let Ok(output) = beets_cmd.stdout(Stdio::piped()).stderr(Stdio::null()).spawn().unwrap().wait_with_output().await {
|
||||||
match serde_json::from_str::<Vec<BeetsTrack>>(str::from_utf8(&output.stdout).unwrap()) {
|
match serde_json::from_str::<Vec<BeetsTrack>>(str::from_utf8(&output.stdout).unwrap()) {
|
||||||
Ok(track) => Ok(track.into_iter().map(|t| { t.into()}).collect()),
|
Ok(track) => Ok(track.into_iter().map(|t| { t.into()}).collect()),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user