/++ read configuration files
- read config files
meta_config_files.d +/ module doc_reform.source.read_config_files; static template configReadInSiteSTR() { import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; final string configReadInSiteSTR(M,E)(M manifest, E env) { auto conf_file_details = ConfigFilePaths!()(manifest, env); string conf_toml = conf_file_details.config_filename_site; string[] possible_config_path_locations = conf_file_details.possible_config_path_locations.config_local_site; string config_file_str; debug(io) { writeln("WARNING (io debug) in config filename: ", conf_toml); writeln("WARNING (io debug) in config possible path locations: ", possible_config_path_locations); } foreach(pth; possible_config_path_locations) { auto conf_file = ((chainPath(pth.to!string, conf_toml)).asNormalizedPath).array; if (config_file_str.length > 0) { break; } try { if (exists(conf_file)) { debug(io) { writeln("WARNING (io debug) in config file found: ", conf_file); } config_file_str = conf_file.readText; break; } } catch (ErrnoException ex) { } catch (FileException ex) { } } return config_file_str; } } static template configReadInDocSTR() { import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; final string configReadInDocSTR(M,E)(M manifest, E env) { auto conf_file_details = ConfigFilePaths!()(manifest, env); string conf_toml = conf_file_details.config_filename_document; string[] possible_config_path_locations = conf_file_details.possible_config_path_locations.dr_document_make; string config_file_str; debug(io) { writeln("WARNING (io debug) in config filename: ", conf_toml); writeln("WARNING (io debug) in config possible path locations: ", possible_config_path_locations); } foreach(pth; possible_config_path_locations) { auto conf_file = ((chainPath(pth.to!string, conf_toml)).asNormalizedPath).array; if (config_file_str.length > 0) { break; } try { if (exists(conf_file)) { debug(io) { writeln("WARNING (io debug) in config file found: ", conf_file); } config_file_str = conf_file.readText; break; } } catch (ErrnoException ex) { } catch (FileException ex) { } } return config_file_str; } } static template configTOML() { import toml; // import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; TOMLDocument configTOML(string configuration, string conf_toml_filename) { TOMLDocument _toml_conf; try { _toml_conf = parseTOML(configuration); // parseTOML(cast(string)(configuration)); } catch(ErrnoException e) { stderr.writeln("Toml problem with content for ", conf_toml_filename); stderr.writeln(e.msg); } return _toml_conf; } } static template readConfigSite() { import doc_reform.meta.rgx; import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; mixin DocReformRgxInit; final auto readConfigSite(M,E)(M _manifest, E _env) { static auto rgx = Rgx(); string config_file_str; string conf_filename = "NONE"; auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); string[] possible_config_path_locations = _conf_file_details.possible_config_path_locations.config_local_site; foreach(conf_fn; [_conf_file_details.config_filename_site]) { foreach(pth; possible_config_path_locations) { char[] conf_file = ((chainPath(pth.to!string, conf_fn)).asNormalizedPath).array; conf_filename = conf_fn; if (config_file_str.length > 0) { // conf_filename = conf_fn; break; } try { if (exists(conf_file)) { debug(io) { writeln("WARNING (io debug) in config file found: ", conf_file); } config_file_str = conf_file.readText; break; } } catch (ErrnoException ex) { } catch (FileException ex) { } } if (config_file_str.length > 0) { break; } } struct _ConfContent { string filename() { return conf_filename; } string filetype() { string _ft = ""; if (content.match(rgx.yaml_config)) { _ft = "yaml"; } else if (content.match(rgx.toml_config)) { _ft = "toml"; } return _ft; } string content() { return config_file_str; } } return _ConfContent(); } } static template readConfigDoc() { import doc_reform.meta.rgx; import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; mixin DocReformRgxInit; final auto readConfigDoc(M,E)(M _manifest, E _env) { static auto rgx = Rgx(); string config_file_str; string conf_filename = "NONE"; auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); string[] possible_config_path_locations = _conf_file_details.possible_config_path_locations.dr_document_make; foreach(conf_fn; [_conf_file_details.config_filename_document]) { foreach(pth; possible_config_path_locations) { auto conf_file = ((chainPath(pth.to!string, conf_fn)).asNormalizedPath).array; conf_filename = conf_fn; if (config_file_str.length > 0) { // conf_filename = conf_fn; break; } try { if (exists(conf_file)) { debug(io) { writeln("WARNING (io debug) in config file found: ", conf_file); } config_file_str = conf_file.readText; break; } } catch (ErrnoException ex) { } catch (FileException ex) { } } if (config_file_str.length > 0) { break; } } struct _ConfContent { string filename() { return conf_filename; } string content() { return config_file_str; } string filetype() { string _ft = ""; if (content.match(rgx.yaml_config)) { _ft = "yaml"; } else if (content.match(rgx.toml_config)) { _ft = "toml"; } return _ft; } } return _ConfContent(); } } static template configReadSiteYAML() { import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; import dyaml; final YAMLDocument configReadSiteYAML(M,E)(M _manifest, E _env) { string _configuration = configReadInSiteYAML!()(_manifest, _env); auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); string _conf_yaml = _conf_file_details.config_filename_site; YAMLDocument _yaml_conf = configYAML!()(_configuration, _conf_yaml); return _yaml_conf; } } static template configReadDocYAML() { import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; import yaml; final YAMLDocument configReadDocYAML(M,E)(M _manifest, E _env) { string _configuration = configReadInDocYAML!()(_manifest, _env); auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); string _conf_yaml = _conf_file_details.config_filename_document; YAMLDocument _yaml_conf = configYAML!()(_configuration, _conf_yaml); return _yaml_conf; } } static template configReadSiteTOML() { import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; import toml; final TOMLDocument configReadSiteTOML(M,E)(M _manifest, E _env) { string _configuration = configReadInSiteSTR!()(_manifest, _env); auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); string _conf_toml = _conf_file_details.config_filename_site; TOMLDocument _toml_conf = configTOML!()(_configuration, _conf_toml); return _toml_conf; } } static template configReadDocTOML() { import doc_reform.meta, doc_reform.source.paths_source, std.file, std.path; import toml; final TOMLDocument configReadDocTOML(M,E)(M _manifest, E _env) { string _configuration = configReadInDocSTR!()(_manifest, _env); auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); string _conf_toml = _conf_file_details.config_filename_document; TOMLDocument _toml_conf = configTOML!()(_configuration, _conf_toml); return _toml_conf; } }