mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-06 06:46:54 -04:00
feat: add -c arg for config file
This commit is contained in:
parent
8e4d3b7aac
commit
75b91d64be
2 changed files with 37 additions and 30 deletions
|
|
@ -2943,7 +2943,7 @@ void set_default_key_bindings(Config *config) {
|
|||
config->key_bindings_count += default_key_bindings_count;
|
||||
}
|
||||
|
||||
void parse_config(void) {
|
||||
void parse_config(const char *cli_config_file) {
|
||||
|
||||
char filename[1024];
|
||||
|
||||
|
|
@ -2989,30 +2989,34 @@ void parse_config(void) {
|
|||
|
||||
create_config_keymap();
|
||||
|
||||
// 获取 MANGOCONFIG 环境变量
|
||||
const char *mangoconfig = getenv("MANGOCONFIG");
|
||||
|
||||
// 如果 MANGOCONFIG 环境变量不存在或为空,则使用 HOME 环境变量
|
||||
if (!mangoconfig || mangoconfig[0] == '\0') {
|
||||
// 获取当前用户家目录
|
||||
const char *homedir = getenv("HOME");
|
||||
if (!homedir) {
|
||||
// 如果获取失败,则无法继续
|
||||
return;
|
||||
}
|
||||
// 构建日志文件路径
|
||||
snprintf(filename, sizeof(filename), "%s/.config/mango/config.conf",
|
||||
homedir);
|
||||
|
||||
// 检查文件是否存在
|
||||
if (access(filename, F_OK) != 0) {
|
||||
// 如果文件不存在,则使用 /etc/mango/config.conf
|
||||
snprintf(filename, sizeof(filename), "%s/mango/config.conf",
|
||||
SYSCONFDIR);
|
||||
}
|
||||
if (cli_config_path != NULL) {
|
||||
snprintf(filename, sizeof(filename), "%s", cli_config_path);
|
||||
} else {
|
||||
// 使用 MANGOCONFIG 环境变量作为配置文件夹路径
|
||||
snprintf(filename, sizeof(filename), "%s/config.conf", mangoconfig);
|
||||
// 获取 MANGOCONFIG 环境变量
|
||||
const char *mangoconfig = getenv("MANGOCONFIG");
|
||||
|
||||
// 如果 MANGOCONFIG 环境变量不存在或为空,则使用 HOME 环境变量
|
||||
if (!mangoconfig || mangoconfig[0] == '\0') {
|
||||
// 获取当前用户家目录
|
||||
const char *homedir = getenv("HOME");
|
||||
if (!homedir) {
|
||||
// 如果获取失败,则无法继续
|
||||
return;
|
||||
}
|
||||
// 构建日志文件路径
|
||||
snprintf(filename, sizeof(filename), "%s/.config/mango/config.conf",
|
||||
homedir);
|
||||
|
||||
// 检查文件是否存在
|
||||
if (access(filename, F_OK) != 0) {
|
||||
// 如果文件不存在,则使用 /etc/mango/config.conf
|
||||
snprintf(filename, sizeof(filename), "%s/mango/config.conf",
|
||||
SYSCONFDIR);
|
||||
}
|
||||
} else {
|
||||
// 使用 MANGOCONFIG 环境变量作为配置文件夹路径
|
||||
snprintf(filename, sizeof(filename), "%s/config.conf", mangoconfig);
|
||||
}
|
||||
}
|
||||
|
||||
set_value_default();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue