modify default_config_paths to respect XDG_CONFIG_HOME; remove unnecessary comments; fmt
This commit is contained in:
20
src/main.rs
20
src/main.rs
@@ -5,7 +5,7 @@ use std::path::PathBuf;
|
|||||||
|
|
||||||
const CONFIG_FILENAME: &str = "bot.yml";
|
const CONFIG_FILENAME: &str = "bot.yml";
|
||||||
const APP_NAME: &str = "deltachat-remotecontrol-bot";
|
const APP_NAME: &str = "deltachat-remotecontrol-bot";
|
||||||
const APP_DIR: &str = APP_NAME;
|
const APP_CONFIG_DIR: &str = APP_NAME;
|
||||||
|
|
||||||
/// Delta Chat bot for remote control of local network machines.
|
/// Delta Chat bot for remote control of local network machines.
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
@@ -19,21 +19,25 @@ struct Args {
|
|||||||
config: Option<PathBuf>,
|
config: Option<PathBuf>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the ordered list of default config paths to try when `-c` is not given.
|
|
||||||
/// The home-directory entry is omitted if $HOME is not set.
|
|
||||||
fn default_config_paths() -> Vec<PathBuf> {
|
fn default_config_paths() -> Vec<PathBuf> {
|
||||||
let mut paths = vec![PathBuf::from(CONFIG_FILENAME)];
|
let mut paths = vec![PathBuf::from(CONFIG_FILENAME)];
|
||||||
|
|
||||||
if let Ok(home) = std::env::var("HOME") {
|
if let Ok(config_home) = std::env::var("XDG_CONFIG_HOME")
|
||||||
|
.map(|c| PathBuf::from(c))
|
||||||
|
.or(std::env::var("HOME").map(|home| PathBuf::from(home).join(".config")))
|
||||||
|
{
|
||||||
paths.push(
|
paths.push(
|
||||||
PathBuf::from(home)
|
PathBuf::from(config_home)
|
||||||
.join(".config")
|
.join(APP_CONFIG_DIR)
|
||||||
.join(APP_DIR)
|
|
||||||
.join(CONFIG_FILENAME),
|
.join(CONFIG_FILENAME),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
paths.push(PathBuf::from("/etc").join(APP_DIR).join(CONFIG_FILENAME));
|
paths.push(
|
||||||
|
PathBuf::from("/etc")
|
||||||
|
.join(APP_CONFIG_DIR)
|
||||||
|
.join(CONFIG_FILENAME),
|
||||||
|
);
|
||||||
|
|
||||||
paths
|
paths
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user