aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2020-05-18 14:23:58 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2020-05-21 11:52:00 -0400
commit1e1e6f56d24a0cd6a3b270dc794374df6c3c832f (patch)
treed21bade8f0a178316ba5f1660687c30a352b6d0c /src
parentmeson using subproject directory, not dub directly (diff)
catching
Diffstat (limited to 'src')
-rw-r--r--src/doc_reform/io_in/read_config_files.d2
-rw-r--r--src/doc_reform/io_out/source_pod.d7
-rw-r--r--src/doc_reform/meta/conf_make_meta_json.d2
-rw-r--r--src/doc_reform/meta/conf_make_meta_yaml.d16
-rwxr-xr-xsrc/doc_reform/spine.d10
5 files changed, 27 insertions, 10 deletions
diff --git a/src/doc_reform/io_in/read_config_files.d b/src/doc_reform/io_in/read_config_files.d
index 9180c20..65b5388 100644
--- a/src/doc_reform/io_in/read_config_files.d
+++ b/src/doc_reform/io_in/read_config_files.d
@@ -89,7 +89,7 @@ webserv:
Node yaml_root;
try {
yaml_root = Loader.fromString(config_file_str).load();
- } catch {
+ } catch (Throwable) {
import std.stdio;
writeln("ERROR failed to read config file content, not parsed as yaml, program default used");
conf_filename = "VIRTUAL";
diff --git a/src/doc_reform/io_out/source_pod.d b/src/doc_reform/io_out/source_pod.d
index 5a96ed6..5a0fd47 100644
--- a/src/doc_reform/io_out/source_pod.d
+++ b/src/doc_reform/io_out/source_pod.d
@@ -167,7 +167,12 @@ template spinePod() {
string _pm = "doc:\n filename: " ~ doc_matters.src.filename ~ "\n language: " ~ doc_matters.pod.manifest_list_of_languages.to!string ~ "\n";
if (doc_matters.opt.action.debug_do
&& doc_matters.opt.action.verbose) {
- _pmy = Loader.fromString(_pm).load();
+ try {
+ _pmy = Loader.fromString(_pm).load();
+ } catch (ErrnoException ex) {
+ } catch (Throwable) {
+ writeln("ERROR failed to read config file content, not parsed as yaml");
+ }
writeln("pod filename: ", _pmy["doc"]["filename"].get!string);
writeln("pod languages: ", doc_matters.pod.manifest_list_of_languages.to!string);
writeln("pod languages: ", doc_matters.src.language);
diff --git a/src/doc_reform/meta/conf_make_meta_json.d b/src/doc_reform/meta/conf_make_meta_json.d
index 5f36fb1..9befaaa 100644
--- a/src/doc_reform/meta/conf_make_meta_json.d
+++ b/src/doc_reform/meta/conf_make_meta_json.d
@@ -410,7 +410,7 @@ static template contentJSONtoSpineStruct() {
}
_struct_composite.meta.creator_author_arr = author_arr;
_struct_composite.meta.creator_author = author_arr.join(", ").chomp.chomp;
- _struct_composite.meta.creator_author_surname = authors_hash_arr["last"][0];
+ _struct_composite.meta.creator_author_surname = (authors_hash_arr["last"].length > 0) ? authors_hash_arr["last"][0] : "";
string _author_name_last_first = authors_hash_arr["last_first"].join("; ").chomp.chomp;
_struct_composite.meta.creator_author_surname_fn = (_author_name_last_first.length > 0)
? _author_name_last_first
diff --git a/src/doc_reform/meta/conf_make_meta_yaml.d b/src/doc_reform/meta/conf_make_meta_yaml.d
index 9dac231..1f22dc8 100644
--- a/src/doc_reform/meta/conf_make_meta_yaml.d
+++ b/src/doc_reform/meta/conf_make_meta_yaml.d
@@ -680,7 +680,7 @@ template contentYAMLtoSpineStruct() {
}
_struct_composite.meta.creator_author_arr = author_arr;
_struct_composite.meta.creator_author = author_arr.join(", ").chomp.chomp;
- _struct_composite.meta.creator_author_surname = authors_hash_arr["last"][0];
+ _struct_composite.meta.creator_author_surname = (authors_hash_arr["last"].length > 0) ? authors_hash_arr["last"][0] : "";
string _author_name_last_first = authors_hash_arr["last_first"].join("; ").chomp.chomp;
_struct_composite.meta.creator_author_surname_fn = (_author_name_last_first.length > 0)
? _author_name_last_first
@@ -1008,13 +1008,18 @@ template configParseYAMLreturnSpineStruct() {
if (_document_struct.content.length > 0) {
try {
_yaml = Loader.fromString(_document_struct.content).load();
- _make_and_meta_struct
- = contentYAMLtoSpineStruct!()(_make_and_meta_struct, _yaml, _manifested, _opt_action, _document_struct.filename);
- } catch {
+ } catch (Throwable) {
import std.stdio;
writeln("ERROR failed to parse content as yaml: ", _document_struct.filename);
// writeln(_document_struct.content);
}
+ try {
+ _make_and_meta_struct
+ = contentYAMLtoSpineStruct!()(_make_and_meta_struct, _yaml, _manifested, _opt_action, _document_struct.filename);
+ } catch (Throwable) {
+ import std.stdio;
+ writeln("ERROR failed to convert yaml to struct: ", _document_struct.filename);
+ }
}
return _make_and_meta_struct;
}
@@ -1050,8 +1055,7 @@ template docHeaderMakeAndMetaTupYamlExtractAndConvertToStruct() {
writeln("ERROR failed to read document header, yaml header does not contain essential information related to title and author");
}
return contentYAMLtoSpineStruct!()(_make_and_meta_struct, _yaml, _manifested, _opt_action, "header");
- } catch {
- import std.stdio;
+ } catch (Throwable) {
writeln("ERROR failed to read document header, header not parsed as yaml: ", _manifested.src.filename);
return _make_and_meta_struct;
}
diff --git a/src/doc_reform/spine.d b/src/doc_reform/spine.d
index 409f460..6e03f3d 100755
--- a/src/doc_reform/spine.d
+++ b/src/doc_reform/spine.d
@@ -663,7 +663,15 @@ string program_name = "spine";
if (exists(sisudoc_txt_)) {
import dyaml;
try {
- Node pod_manifest_yaml = Loader.fromFile(sisudoc_txt_).load();
+ Node pod_manifest_yaml;
+ try {
+ pod_manifest_yaml = Loader.fromFile(sisudoc_txt_).load();
+ } catch (ErrnoException ex) {
+ } catch (FileException ex) {
+ writeln("ERROR failed to read config file");
+ } catch (Throwable) {
+ writeln("ERROR failed to read config file content, not parsed as yaml");
+ }
if ("doc" in pod_manifest_yaml) {
if (pod_manifest_yaml["doc"].type.mapping
&& pod_manifest_yaml["doc"].tag.match(rgx.yaml_tag_is_map)