diff options
author | Jeff Zhao <jeff.no.zhao@gmail.com> | 2022-08-29 12:36:31 -0400 |
---|---|---|
committer | Jeff Zhao <jeff.no.zhao@gmail.com> | 2022-08-29 12:36:31 -0400 |
commit | 9f5e6e0dbf239cdb08a7974147d0fa3f8183e364 (patch) | |
tree | 9fff4c76c9fbd1785ba06d82cfbe1db760f11947 /src/main.rs | |
parent | edf620b4aceaaadffedd14d85d120d485a6ad8f3 (diff) |
add lazy static initalizations to make sure configs are initialized at the right time
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index 26f1d59..2b3f171 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,7 +27,6 @@ use crate::config::{ }; use crate::context::AppContext; use crate::error::JoshutoError; -use crate::run::run; const PROGRAM_NAME: &str = "joshuto"; const CONFIG_HOME: &str = "JOSHUTO_CONFIG_HOME"; @@ -88,7 +87,7 @@ pub struct Args { rest: Vec<String>, } -fn run_joshuto(args: Args) -> Result<i32, JoshutoError> { +fn run_main(args: Args) -> Result<i32, JoshutoError> { if args.version { let version = env!("CARGO_PKG_VERSION"); println!("{}-{}", PROGRAM_NAME, version); @@ -102,13 +101,20 @@ fn run_joshuto(args: Args) -> Result<i32, JoshutoError> { } } + // make sure all configs have been loaded before starting let config = AppConfig::get_config(CONFIG_FILE); let keymap = AppKeyMapping::get_config(KEYMAP_FILE); + lazy_static::initialize(&THEME_T); + lazy_static::initialize(&MIMETYPE_T); + lazy_static::initialize(&PREVIEW_T); + lazy_static::initialize(&HOME_DIR); + lazy_static::initialize(&USERNAME); + lazy_static::initialize(&HOSTNAME); let mut context = AppContext::new(config, args.clone()); { let mut backend: ui::AppBackend = ui::AppBackend::new()?; - run(&mut backend, &mut context, keymap)?; + run::run_loop(&mut backend, &mut context, keymap)?; } run_quit(&args, &context)?; Ok(context.quit.exit_code()) @@ -169,7 +175,7 @@ fn run_quit(args: &Args, context: &AppContext) -> Result<(), JoshutoError> { fn main() { let args = Args::from_args(); - match run_joshuto(args) { + match run_main(args) { Ok(exit_code) => process::exit(exit_code), Err(e) => { eprintln!("{}", e); |