fix: add server address and port fields to settings and update constructor
Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) <aider@aider.chat>
This commit is contained in:
@@ -48,6 +48,8 @@ pub struct Settings {
|
|||||||
pub quiet: bool,
|
pub quiet: bool,
|
||||||
pub force: bool,
|
pub force: bool,
|
||||||
pub server_password: Option<String>,
|
pub server_password: Option<String>,
|
||||||
|
pub server_address: Option<String>,
|
||||||
|
pub server_port: Option<u16>,
|
||||||
pub compression: Option<String>,
|
pub compression: Option<String>,
|
||||||
pub digest: Option<String>,
|
pub digest: Option<String>,
|
||||||
pub meta_plugins: Vec<String>,
|
pub meta_plugins: Vec<String>,
|
||||||
@@ -87,6 +89,12 @@ impl Settings {
|
|||||||
let server_password = args.options.server_password.clone()
|
let server_password = args.options.server_password.clone()
|
||||||
.or_else(|| config.get_server_password().ok().flatten());
|
.or_else(|| config.get_server_password().ok().flatten());
|
||||||
|
|
||||||
|
let server_address = args.mode.server_address.clone()
|
||||||
|
.or_else(|| config.server.as_ref().and_then(|s| s.address.clone()));
|
||||||
|
|
||||||
|
let server_port = args.mode.server_port
|
||||||
|
.or_else(|| config.server.as_ref().and_then(|s| s.port));
|
||||||
|
|
||||||
let compression = args.item.compression.clone()
|
let compression = args.item.compression.clone()
|
||||||
.or_else(|| config.compression_plugin.as_ref().map(|c| c.name.clone()));
|
.or_else(|| config.compression_plugin.as_ref().map(|c| c.name.clone()));
|
||||||
|
|
||||||
@@ -110,35 +118,14 @@ impl Settings {
|
|||||||
quiet,
|
quiet,
|
||||||
force,
|
force,
|
||||||
server_password,
|
server_password,
|
||||||
|
server_address,
|
||||||
|
server_port,
|
||||||
compression,
|
compression,
|
||||||
digest,
|
digest,
|
||||||
meta_plugins,
|
meta_plugins,
|
||||||
meta: args.item.meta.clone(),
|
meta: args.item.meta.clone(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get server address from args or config
|
|
||||||
pub fn get_server_address(&self, args: &Args, config: &Config) -> Option<String> {
|
|
||||||
// CLI args take priority
|
|
||||||
if let Some(server_addr) = &args.mode.server {
|
|
||||||
return Some(server_addr.clone());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Then config file
|
|
||||||
if let Some(server_config) = &config.server {
|
|
||||||
let mut addr = server_config.address.clone().unwrap_or_else(|| "127.0.0.1".to_string());
|
|
||||||
if let Some(port) = server_config.port {
|
|
||||||
if !addr.contains(':') {
|
|
||||||
addr.push_str(&format!(":{}", port));
|
|
||||||
}
|
|
||||||
} else if !addr.contains(':') {
|
|
||||||
addr.push_str(":8080");
|
|
||||||
}
|
|
||||||
return Some(addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
None
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Config {
|
impl Config {
|
||||||
|
|||||||
Reference in New Issue
Block a user