1use log::{trace};
2
3use crate::app::App;
4use crate::config::get_config_context;
5use crate::context::auto_register_context::get_auto_register_context;
6use crate::core::Error;
7use crate::logger::init_logger;
8
9pub mod core;
10pub mod context;
11pub mod app;
12pub mod logger;
13pub mod config;
14
15pub fn create_app() -> Result<App, Error> {
16 let context = get_config_context()?;
17 init_logger(&context)?;
18
19 trace!("setup - create default App instance");
20 let app = App::default();
21
22 trace!("setup - adding {} to App", &context);
23 app.add_context(context);
24
25 let context = get_auto_register_context()?;
26 trace!("setup - adding {} to App", &context);
27 app.add_context(context);
28
29 Ok(app)
30}