Rename beets command executor

This commit is contained in:
Wojciech Kozlowski 2023-04-14 11:14:08 +02:00
parent a5c1bb8558
commit 1c9ef378f7
3 changed files with 18 additions and 17 deletions

View File

@ -95,7 +95,7 @@ trait LibraryPrivate {
}
impl<BLE: BeetsLibraryExecutor> BeetsLibrary<BLE> {
/// Create a new beets library with the provided executor, e.g. [`BeetsLibraryCommandExecutor`].
/// Create a new beets library with the provided executor, e.g. [`BeetsLibraryProcessExecutor`].
pub fn new(executor: BLE) -> Self {
BeetsLibrary { executor }
}
@ -199,15 +199,15 @@ impl<BLE: BeetsLibraryExecutor> LibraryPrivate for BeetsLibrary<BLE> {
}
/// Beets library executor that executes beets commands in their own process.
pub struct BeetsLibraryCommandExecutor {
pub struct BeetsLibraryProcessExecutor {
bin: OsString,
config: Option<PathBuf>,
}
impl BeetsLibraryCommandExecutor {
/// Create a new [`BeetsLibraryCommandExecutor`] that uses the provided beets executable.
impl BeetsLibraryProcessExecutor {
/// Create a new [`BeetsLibraryProcessExecutor`] that uses the provided beets executable.
pub fn new<S: Into<OsString>>(bin: S) -> Self {
BeetsLibraryCommandExecutor {
BeetsLibraryProcessExecutor {
bin: bin.into(),
config: None,
}
@ -220,14 +220,15 @@ impl BeetsLibraryCommandExecutor {
}
}
impl Default for BeetsLibraryCommandExecutor {
/// Create a new [`BeetsLibraryCommandExecutor`] that uses the system's default beets executable.
impl Default for BeetsLibraryProcessExecutor {
/// Create a new [`BeetsLibraryProcessExecutor`] that uses the system's default beets
/// executable.
fn default() -> Self {
BeetsLibraryCommandExecutor::new("beet")
BeetsLibraryProcessExecutor::new("beet")
}
}
impl BeetsLibraryExecutor for BeetsLibraryCommandExecutor {
impl BeetsLibraryExecutor for BeetsLibraryProcessExecutor {
fn exec<S: AsRef<str> + 'static>(&mut self, arguments: &[S]) -> Result<Vec<String>, Error> {
let mut cmd = Command::new(&self.bin);
if let Some(ref path) = self.config {

View File

@ -8,7 +8,7 @@ use structopt::StructOpt;
use musichoard::{
collection::MhCollectionManager,
database::json::{JsonDatabase, JsonDatabaseFileBackend},
library::beets::{BeetsLibrary, BeetsLibraryCommandExecutor},
library::beets::{BeetsLibrary, BeetsLibraryProcessExecutor},
};
mod tui;
@ -42,7 +42,7 @@ fn main() {
let opt = Opt::from_args();
let beets = BeetsLibrary::new(
BeetsLibraryCommandExecutor::default().config(opt.beets_config_file_path.as_deref()),
BeetsLibraryProcessExecutor::default().config(opt.beets_config_file_path.as_deref()),
);
let database = JsonDatabase::new(JsonDatabaseFileBackend::new(&opt.database_file_path));

View File

@ -8,7 +8,7 @@ use once_cell::sync::Lazy;
use musichoard::{
library::{
beets::{BeetsLibrary, BeetsLibraryCommandExecutor},
beets::{BeetsLibrary, BeetsLibraryProcessExecutor},
Field, Library, Query,
},
Artist,
@ -16,17 +16,17 @@ use musichoard::{
use crate::COLLECTION;
static BEETS_EMPTY_CONFIG: Lazy<Arc<Mutex<BeetsLibrary<BeetsLibraryCommandExecutor>>>> =
static BEETS_EMPTY_CONFIG: Lazy<Arc<Mutex<BeetsLibrary<BeetsLibraryProcessExecutor>>>> =
Lazy::new(|| {
Arc::new(Mutex::new(BeetsLibrary::new(
BeetsLibraryCommandExecutor::default(),
BeetsLibraryProcessExecutor::default(),
)))
});
static BEETS_TEST_CONFIG: Lazy<Arc<Mutex<BeetsLibrary<BeetsLibraryCommandExecutor>>>> =
static BEETS_TEST_CONFIG: Lazy<Arc<Mutex<BeetsLibrary<BeetsLibraryProcessExecutor>>>> =
Lazy::new(|| {
Arc::new(Mutex::new(BeetsLibrary::new(
BeetsLibraryCommandExecutor::default().config(Some(
BeetsLibraryProcessExecutor::default().config(Some(
&fs::canonicalize("./tests/files/library/config.yml").unwrap(),
)),
)))
@ -45,7 +45,7 @@ fn test_no_config_list() {
#[test]
fn test_invalid_config() {
let mut beets = BeetsLibrary::new(BeetsLibraryCommandExecutor::default().config(Some(
let mut beets = BeetsLibrary::new(BeetsLibraryProcessExecutor::default().config(Some(
&PathBuf::from("./tests/files/library/config-does-not-exist.yml"),
)));