/* * rpmemd_config_read -- read config from cl and config files * * cl param overwrites configuration from any config file. Config file are read * in order: * 1. Global config file * 2. User config file * or * cl provided config file */ int rpmemd_config_read(struct rpmemd_config *config, int argc, char *argv[]) { const char *cl_config_file = NULL; char user_config_file[PATH_MAX]; char home_dir[PATH_MAX]; uint64_t cl_options = 0; get_home_dir(home_dir, PATH_MAX); config_set_default(config, home_dir); parse_cl_args(argc, argv, config, &cl_config_file, &cl_options); if (cl_config_file) { if (parse_config_file(cl_config_file, config, cl_options, 1)) return 1; } else { if (parse_config_file(RPMEMD_GLOBAL_CONFIG_FILE, config, cl_options, 0)) return 1; concat_dir_and_file_name(user_config_file, PATH_MAX, home_dir, RPMEMD_USER_CONFIG_FILE); if (parse_config_file(user_config_file, config, cl_options, 0)) return 1; } config->poolset_dir = str_replace_home(config->poolset_dir, home_dir); return 0; }
/* * rpmemd_config_read -- read and merge cl params and config from file */ int rpmemd_config_read(struct rpmemd_config *config, int argc, char *argv[]) { const char *config_file = RPMEMD_DEFAULT_CONFIG_FILE; rpmemd_config_set_default(config); uint64_t cl_options = 0; parse_cl_args(argc, argv, config, &config_file, &cl_options); return parse_config_file(config_file, config, cl_options); }