Files
practical-runner/src/main.rs
2024-05-22 01:12:01 +02:00

51 lines
1.1 KiB
Rust

use std::{
error::Error,
process::{self, Stdio},
};
#[allow(unused_imports)]
use clap::Parser;
use config::RunnerMenuSettings;
use executables::get_executables;
use runner::Runner;
mod arguments;
mod config;
mod executables;
mod runner;
mod utils;
fn main() -> Result<(), Box<dyn Error>> {
let args = arguments::Arguments::parse();
let executables = get_executables()?;
let mut runner = Runner::new(
args.prompt,
executables,
RunnerMenuSettings {
font_color: args.font_color,
font_color_active: args.font_color_active,
background_color: args.background_color,
background_color_active: args.background_color_active,
rows: args.rows,
font_size: args.font_size,
line_spacing: args.line_spacing,
},
);
if let Some(program) = runner.run() {
run_program(program);
}
Ok(())
}
fn run_program(program: impl ToString) {
let _ = process::Command::new(program.to_string())
.stdin(Stdio::null())
.stdout(Stdio::null())
.stderr(Stdio::null())
.spawn();
}