use crate::runtimes::CommandGenerator;
use std::{path::PathBuf, process::Command};
const COMMAND_PYTHON: &str = "python";
const COMMAND_ARGS_PYTHON: [&str; 1] = ["-m"];
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct CommandGeneratorPython {
root_path: PathBuf,
module_path: String,
}
impl CommandGeneratorPython {
pub fn new(root_path: impl Into<PathBuf>, module_path: &str) -> Self {
Self {
root_path: root_path.into(),
module_path: module_path.to_string(),
}
}
}
impl CommandGenerator for CommandGeneratorPython {
fn generate_command(&self) -> Command {
let mut command = Command::new(COMMAND_PYTHON);
command
.current_dir(&self.root_path) .args(COMMAND_ARGS_PYTHON)
.arg(&self.module_path);
command
}
}