1use core::str;
5
6use yaml_rust::Yaml;
7
8mod config_provider;
9mod local_config;
10pub mod profiles;
11mod yaml;
12
13pub use config_provider::ConfigProvider;
14
15
16pub struct ReadConfigFilesCommand<'a, T: AsRef<str>> {
18 pub(crate) profiles: &'a [T],
19 pub(crate) config_dir: &'a str,
20}
21
22impl<'a, T: AsRef<str>> ReadConfigFilesCommand<'a, T> {
23 pub fn new(profiles: &'a [T], config_dir: &'a str) -> ReadConfigFilesCommand<'a, T> {
24 ReadConfigFilesCommand {
25 profiles,
26 config_dir,
27 }
28 }
29}
30
31pub fn read_yaml_config_from_files<'a, T: AsRef<str>>(
39 command: &ReadConfigFilesCommand<'a, T>,
40) -> Yaml {
41 let lc = local_config::read_profiles_configs(command.profiles, command.config_dir);
42 yaml::parse_yaml_config(&lc)
43}