vnetod/src/cli/switch.rs

22 lines
570 B
Rust

use crate::{cli::Args, domain};
use std::{cell::RefCell, fs::File};
#[derive(Debug)]
pub enum Error {
OpenFile,
Switch(domain::switch::Error),
}
pub fn execute(args: &Args) -> Result<(), Error> {
let reader = File::open(&args.file).map_err(|_| Error::OpenFile)?;
let writer =
File::create(args.output.as_ref().unwrap_or(&args.file)).map_err(|_| Error::OpenFile)?;
domain::switch::execute(domain::switch::Request {
reader: RefCell::new(reader),
writer,
sections: &args.sections,
})
.map_err(Error::Switch)
}