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(vec![
17 "app.yaml".to_string(),
18 "app.yml".to_string(),
19 ])?;
20 init_logger(&context)?;
21
22 trace!("setup - create default App instance");
23 let app = App::default();
24
25 trace!("setup - adding {} to App", &context);
26 app.add_context(context);
27
28 let context = get_auto_register_context()?;
29 trace!("setup - adding {} to App", &context);
30 app.add_context(context);
31
32 Ok(app)
33}