aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/doc_reform/io_in/read_config_files.d
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2024-04-10 22:24:34 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2024-04-10 23:08:18 -0400
commit90873fabd7451e1dd8c4b39303906e19bdc481f7 (patch)
tree2dbb0e41f3e9c761645c8b37dafe979a01d38d32 /src/doc_reform/io_in/read_config_files.d
parent0.15.0 (diff)
0.16.0 sisudoc (src/sisudoc sisudoc spine)
- src/sisudoc (replaces src/doc_reform) - sisudoc spine (used more)
Diffstat (limited to 'src/doc_reform/io_in/read_config_files.d')
-rw-r--r--src/doc_reform/io_in/read_config_files.d279
1 files changed, 0 insertions, 279 deletions
diff --git a/src/doc_reform/io_in/read_config_files.d b/src/doc_reform/io_in/read_config_files.d
deleted file mode 100644
index f9f7fb0..0000000
--- a/src/doc_reform/io_in/read_config_files.d
+++ /dev/null
@@ -1,279 +0,0 @@
-/+
-- Name: Spine, Doc Reform [a part of]
- - Description: documents, structuring, processing, publishing, search
- - static content generator
-
- - Author: Ralph Amissah
- [ralph.amissah@gmail.com]
-
- - Copyright: (C) 2015 - 2024 Ralph Amissah, All Rights Reserved.
-
- - License: AGPL 3 or later:
-
- Spine (SiSU), a framework for document structuring, publishing and
- search
-
- Copyright (C) Ralph Amissah
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU AFERO General Public License as published by the
- Free Software Foundation, either version 3 of the License, or (at your
- option) any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program. If not, see [https://www.gnu.org/licenses/].
-
- If you have Internet connection, the latest version of the AGPL should be
- available at these locations:
- [https://www.fsf.org/licensing/licenses/agpl.html]
- [https://www.gnu.org/licenses/agpl.html]
-
- - Spine (by Doc Reform, related to SiSU) uses standard:
- - docReform markup syntax
- - standard SiSU markup syntax with modified headers and minor modifications
- - docReform object numbering
- - standard SiSU object citation numbering & system
-
- - Homepages:
- [https://www.sisudoc.org]
- [https://www.doc-reform.org]
-
- - Git
- [https://git.sisudoc.org/]
-
-+/
-/++
- read configuration files<BR>
- - read config files<BR>
- meta_config_files.d
-+/
-module doc_reform.io_in.read_config_files;
-@safe:
-import
- std.file,
- std.path;
-import
- doc_reform.meta,
- doc_reform.io_in.paths_source,
- doc_reform.meta.rgx_files,
- doc_reform.meta.rgx;
-template readConfigSite() {
- @system final auto readConfigSite(Cf,O,Cfg)(Cf _conf_file_details, O _opt_action, Cfg _cfg) {
- mixin spineRgxIn;
- static auto rgx = RgxI();
- string conf_filename = "NONE";
- string config_file_str;
- string default_config_file_str = format(q"┃
-flag:
- act0: "--html"
- act1: "--html --epub"
-output:
- path: "%s"
-default:
- language: "en"
- papersize: "a4"
- text_wrap: "80"
- digest: "sha256"
-webserv:
- http: "%s"
- host: "%s"
- data_http: "%s"
- data_host: "%s"
- data_root_url: "%s"
- data_root_path: "%s"
- data_root_part: ""
- images_root_part: "image"
- cgi_search_form_title: "%s"
- cgi_http: "%s"
- cgi_host: "%s"
- cgi_bin_url: "%s"
- cgi_bin_subpath: "%s"
- cgi_bin_path: "%s"
- cgi_search_script: "%s"
- cgi_port: ""
- cgi_user: ""
- cgi_action: "%s"
- db_sqlite_path: "%s"
- db_sqlite_filename: "%s"
- db_pg_table: ""
- db_pg_user: ""
-┃",
- _cfg.processing_path_doc_root, // doc root
- _cfg.http_request_type, // http
- _cfg.http_host, // host / domain
- _cfg.http_request_type, // data "http" or "https"
- _cfg.http_host, // data domain "localhost"
- _cfg.www_url_doc_root, // data root url "http://locahost" "https://sisudoc.org"
- _cfg.processing_path_doc_root, // data root path
- _cfg.cgi_search_form_title, // cgi title // e.g. "≅ SiSU Spine search"
- _cfg.http_request_type, // cgi http
- _cfg.http_host, // cgi host
- _cfg.cgi_url_root, // cgi bin url
- _cfg.cgi_bin_subpath, // cgi bin path
- _cfg.cgi_bin_root, // cgi bin path
- _cfg.cgi_filename, // cgi filename
- _cfg.cgi_url_action, // cgi action
- _cfg.db_sqlite_path, // sqlite db path
- _cfg.db_sqlite_filename, // sqlite db filename
-);
- foreach(conf_fn; [_conf_file_details.config_filename_site]) {
- foreach(pth; _conf_file_details.possible_config_path_locations.config_local_site) {
- char[] conf_file;
- conf_filename = conf_fn;
- if (exists(pth)) {
- auto f_attrib = pth.getLinkAttributes;
- if (
- _conf_file_details.possible_config_path_locations.config_local_site.length == 1
- && f_attrib.attrIsFile
- ) {
- conf_file = pth.to!(char[]);
- conf_filename = pth.baseName;
- } else if (f_attrib.attrIsDir) {
- conf_file = ((chainPath(pth.to!string, conf_fn)).asNormalizedPath).array;
- conf_filename = conf_fn;
- }
- try {
- if (exists(conf_file)) {
- if (conf_file.getLinkAttributes.attrIsFile) {
- if (_opt_action.vox_gt1 || _opt_action.debug_do) {
- writeln("config file used: \"", conf_file, "\" (cli flag settings override config file's individual settings)");
- }
- config_file_str = conf_file.readText;
- break;
- }
- }
- } catch (ErrnoException ex) {
- } catch (FileException ex) {
- }
- }
- }
- if (config_file_str.length > 0) { break; }
- }
- if (config_file_str.length > 0) {
- import dyaml;
- Node yaml_root;
- try {
- yaml_root = Loader.fromString(config_file_str).load();
- } catch (Throwable) {
- import std.stdio;
- writeln("ERROR failed to read config file content, not parsed as yaml, program default used");
- conf_filename = "VIRTUAL";
- config_file_str = default_config_file_str;
- }
- }
- if (config_file_str.length == 0) { /+ use dummy default config file +/
- // writeln("WARNING config file NOT found, default provided");
- conf_filename = "VIRTUAL";
- config_file_str = default_config_file_str;
- }
- 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
- std.file,
- std.path;
- import
- doc_reform.meta,
- doc_reform.io_in.paths_source,
- doc_reform.meta.rgx_files,
- doc_reform.meta.rgx;
- @system final auto readConfigDoc(M,E)(M _manifested, E _env) {
- mixin spineRgxIn;
- static auto rgx = RgxI();
- mixin spineRgxFiles;
- static auto rgx_files = RgxFiles();
- string config_file_str;
- string conf_filename = "NONE";
- auto _conf_file_details = configFilePaths!()(_manifested, _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) {
- char[] conf_file = ((chainPath(pth.to!string, conf_fn)).asNormalizedPath).array;
- conf_filename = conf_fn;
- if (config_file_str.length > 0) {
- break;
- }
- try {
- if (exists(conf_file)) {
- if (conf_file.getLinkAttributes.attrIsFile) {
- 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
- std.file,
- std.path;
- import
- doc_reform.meta,
- doc_reform.io_in.paths_source,
- doc_reform.meta.rgx_files,
- doc_reform.meta.rgx;
- final YAMLDocument configReadSiteYAML(M,E)(M _manifested, E _env) {
- string _configuration = configReadInSiteYAML!()(_manifested, _env);
- auto _conf_file_details = configFilePaths!()(_manifested, _env);
- string _conf_yaml_fn = _conf_file_details.config_filename_site;
- YAMLDocument _yaml_conf = configYAML!()(_configuration, _conf_yaml_fn);
- return _yaml_conf;
- }
-}
-static template configReadDocYAML() {
- import
- std.file,
- std.path;
- import
- doc_reform.meta,
- doc_reform.io_in.paths_source;
- final YAMLDocument configReadDocYAML(M,E)(M _manifested, E _env) {
- string _configuration = configReadInDocYAML!()(_manifested, _env);
- auto _conf_file_details = configFilePaths!()(_manifested, _env);
- string _conf_yaml_fn = _conf_file_details.config_filename_document;
- YAMLDocument _yaml_conf = configYAML!()(_configuration, _conf_yaml_fn);
- return _yaml_conf;
- }
-}