use crate::rulog::ru_log;
use crate::ruweb::{webdto, webrouter, webserver};
use crate::{rucfg, rucmd };
use crate::rubase::rutils::str_utils;
use crate::ruweb::webrouter::clear_route_items;
pub fn start_web() -> std::io::Result<()> {
let args: Vec<String> = std::env::args().collect();
if args.len() >= 2 {
rucmd::find_bean_ru_cmd().unwrap().execute(&args);
ctlc();
return Ok(());
}
let cfg = rucfg::find_bean_ru_config().unwrap();
if rucfg::ifNotMaster() {
ru_log::info2("ruwebframe find_bean_ruconfig =>", cfg.get_self());
}
let port = str_utils::str2u16(cfg.get_self().web.server.port.as_str());
webrouter::route_factroy::list_routes_items();
webdto::list_items();
webserver::find_bean_ru_app().unwrap().run(port)
}
fn ctlc() {
ru_log::info("服务已启动,按 Ctrl+C 退出");
let (tx, rx) = std::sync::mpsc::channel();
ctrlc::set_handler(move || {
tx.send(()).unwrap();
})
.unwrap();
rx.recv().unwrap();
println!("正在关闭...");
}