use netsky_io::{AccessCmd, IoCommand, IrohCmd};
pub fn run(sub: IoCommand) -> netsky_core::Result<()> {
match sub {
IoCommand::Serve { source } => {
netsky_io::run_source(source).map_err(|e| netsky_core::Error::Message(e.to_string()))
}
IoCommand::Access(AccessCmd::Email(cmd)) => netsky_io::sources::email::access_cli(cmd)
.map_err(|e| netsky_core::Error::Message(e.to_string())),
IoCommand::Access(AccessCmd::Calendar(cmd)) => {
netsky_io::sources::calendar::access_cli(cmd)
.map_err(|e| netsky_core::Error::Message(e.to_string()))
}
IoCommand::Access(cmd) => netsky_io::sources::imessage::access::cli(cmd)
.map_err(|e| netsky_core::Error::Message(e.to_string())),
IoCommand::Iroh(IrohCmd::Whoami) => netsky_io::sources::iroh::whoami()
.map_err(|e| netsky_core::Error::Message(e.to_string())),
IoCommand::Iroh(IrohCmd::Send { label, text }) => {
netsky_io::sources::iroh::send_oneshot(&label, &text)
.map_err(|e| netsky_core::Error::Message(e.to_string()))
}
}
}