diff --git a/src/config.rs b/src/config.rs index 8f07e8c..fa2a2a6 100644 --- a/src/config.rs +++ b/src/config.rs @@ -3,4 +3,34 @@ pub struct App { pub uri: String, pub auth_uri: String, pub token: icarus_models::login_result::LoginResult, + pub root_directory: String +} + +impl App { + pub fn does_root_directory_exists(&self) -> bool { + let path = std::path::Path::new(&self.root_directory); + if path.exists() { + if path.is_dir() { + true + } else { + false + } + } else { + false + } + } +} + + +pub async fn initialize_app_config() -> App { + App { + uri: icarus_envy::environment::get_icarus_base_api_url() + .await + .value, + auth_uri: icarus_envy::environment::get_icarus_auth_base_api_url() + .await + .value, + root_directory: icarus_envy::environment::get_root_directory().await.value, + ..Default::default() + } } diff --git a/src/main.rs b/src/main.rs index 3b4635b..55a7c22 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,21 +11,18 @@ pub const SECONDS_TO_SLEEP: u64 = 5; #[tokio::main] async fn main() -> Result<(), Box> { - let mut app = config::App { - uri: icarus_envy::environment::get_icarus_base_api_url() - .await - .value, - auth_uri: icarus_envy::environment::get_icarus_auth_base_api_url() - .await - .value, - ..Default::default() - }; + let mut app = config::initialize_app_config().await; println!("Base URL: {:?}", app.uri); println!("Auth URL: {:?}", app.auth_uri); - match auth::get_token(&app).await { + if !app.does_root_directory_exists() { + eprintln!("Root directory does not exist"); + std::process::exit(-1); + } + + app.token = match auth::get_token(&app).await { Ok(login_result) => { - app.token = login_result; + login_result } Err(err) => { eprintln!("Error: {err:?}");