/++
read configuration files
- read config files
meta_config_files.d
+/
module doc_reform.source.read_config_files;
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";
}
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";
}
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;
}
}