feat: implement unified settings system

Co-authored-by: aider (openai/andrew/openrouter/anthropic/claude-sonnet-4) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-15 16:36:58 -03:00
parent 067cba703b
commit 56f4d8aad5
12 changed files with 283 additions and 140 deletions

View File

@@ -20,26 +20,28 @@ pub use common::{ServerConfig, AppState, logging_middleware, create_auth_middlew
pub fn mode_server(
_cmd: &mut Command,
args: &crate::Args,
settings: &crate::config::Settings,
config: &crate::config::Config,
conn: &mut rusqlite::Connection,
data_path: PathBuf,
) -> Result<()> {
let server_address = args.mode.server.as_ref().unwrap();
let server_address = settings.get_server_address(&crate::args::Args::parse(), config)
.unwrap_or_else(|| "127.0.0.1:8080".to_string());
let config = ServerConfig {
address: server_address.clone(),
password: args.options.server_password.clone(),
let server_config = common::ServerConfig {
address: server_address,
password: settings.server_password.clone(),
};
// We need to move the connection into the async runtime
let rt = tokio::runtime::Runtime::new()?;
// Take ownership of the connection and move it into the async runtime
let owned_conn = std::mem::replace(conn, rusqlite::Connection::open_in_memory()?);
rt.block_on(run_server(config, owned_conn, data_path))
rt.block_on(run_server(server_config, owned_conn, data_path))
}
async fn run_server(
config: ServerConfig,
config: common::ServerConfig,
conn: rusqlite::Connection,
data_dir: PathBuf,
) -> Result<()> {