···33//! Uses sqlite as the underlying database
44//!
5566-use std::path::PathBuf;
66+use std::{env, path::PathBuf};
7788use anyhow::{Result, anyhow};
99use log::info;
···117117118118fn fetch_passkey() -> Result<String> {
119119 let app_name = get_app_name();
120120+ // handling db passwords in dev mode separately
121121+ // This is to suppress keychain popups during development
122122+123123+ if cfg!(debug_assertions) {
124124+ if let Ok(passwd) = env::var("TILES_DEV_DB_PASSWORD") {
125125+ return Ok(passwd);
126126+ } else {
127127+ info!("DB passkey not found in development, creating one..");
128128+ let passwd = create_and_save_passkey(&app_name, "db_passkey")?;
129129+ info!(
130130+ "Save this password {} as an environment variable with name `TILES_DEV_DB_PASSWORD`",
131131+ passwd
132132+ );
133133+ return Ok(passwd);
134134+ }
135135+ }
136136+120137 if let Ok(passkey) = get_passkey(&app_name, "db_passkey") {
121138 Ok(passkey)
122139 } else {
+1-1
tiles/src/main.rs
···233233 .inspect_err(|e| eprintln!("Tiles failed to run due to {:?}", e))?;
234234 }
235235 Some(Commands::Health) => {
236236- commands::check_health().await;
236236+ commands::check_health().await?;
237237 }
238238 Some(Commands::Server(server)) => match server.command {
239239 Some(ServerCommands::Start) => commands::start_server(&runtime).await,