From 8577facf7e0f06580d289ed5bf8cbded3ad2a9f1 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sat, 16 Dec 2017 16:06:29 -0500 Subject: target different type of config file locations - config files for - local site configuration (not in pod) - document make (included in pod) --- src/sdp/meta/read_config_files.d | 60 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 6 deletions(-) (limited to 'src/sdp/meta/read_config_files.d') diff --git a/src/sdp/meta/read_config_files.d b/src/sdp/meta/read_config_files.d index b3c7f1b..d816619 100644 --- a/src/sdp/meta/read_config_files.d +++ b/src/sdp/meta/read_config_files.d @@ -4,14 +4,49 @@ meta_config_files.d +/ module sdp.meta.read_config_files; -static template configIn() { +static template configInSite() { import sdp.meta, sdp.output.paths_source, std.file, std.path; - final string configIn(M,E,C)(M manifest, E env, C conf_sdl) { - auto possible_config_path_locations = ConfigFilePaths!()(manifest, env).possible_config_path_locations; + final string configInSite(M,E,C)(M manifest, E env, C conf_sdl) { + auto possible_config_path_locations = ConfigFilePaths!()(manifest, env).possible_config_path_locations_local_site; + string config_file_str; + foreach(pth; possible_config_path_locations) { + auto conf_file = format( + "%s/%s", + pth, + conf_sdl, + ); + if (config_file_str.length > 0) { + break; + } + try { + if (exists(conf_file)) { + debug(configfile) { + writeln(conf_file); + } + config_file_str = conf_file.readText; + break; + } + } + catch (ErrnoException ex) { + } + catch (FileException ex) { + } + } + return config_file_str; + } +} +static template configInDoc() { + import + sdp.meta, + sdp.output.paths_source, + std.file, + std.path; + final string configInDoc(M,E,C)(M manifest, E env, C conf_sdl) { + auto possible_config_path_locations = ConfigFilePaths!()(manifest, env).possible_config_path_locations_document; string config_file_str; foreach(pth; possible_config_path_locations) { auto conf_file = format( @@ -63,15 +98,28 @@ static template ConfigSDLang() { } /+ +/ -static template configRead() { +static template configReadSite() { + import + sdp.meta, + sdp.output.paths_source, + std.file, + std.path; + + final auto configReadSite(M,E,C)(M manifest, E env, C conf_sdl) { + auto configuration = configInSite!()(manifest, env, conf_sdl); + auto sdl_root = ConfigSDLang!()(configuration, conf_sdl); + return sdl_root; + } +} +static template configReadDoc() { import sdp.meta, sdp.output.paths_source, std.file, std.path; - final auto configRead(M,E,C)(M manifest, E env, C conf_sdl) { - auto configuration = configIn!()(manifest, env, conf_sdl); + final auto configReadDoc(M,E,C)(M manifest, E env, C conf_sdl) { + auto configuration = configInDoc!()(manifest, env, conf_sdl); auto sdl_root = ConfigSDLang!()(configuration, conf_sdl); return sdl_root; } -- cgit v1.2.3