diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2020-05-18 14:23:58 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2020-05-21 11:52:00 -0400 | 
| commit | 1e1e6f56d24a0cd6a3b270dc794374df6c3c832f (patch) | |
| tree | d21bade8f0a178316ba5f1660687c30a352b6d0c /org | |
| parent | meson using subproject directory, not dub directly (diff) | |
catching
Diffstat (limited to 'org')
| -rw-r--r-- | org/in_source_files.org | 2 | ||||
| -rw-r--r-- | org/meta_conf_make_meta.org | 18 | ||||
| -rw-r--r-- | org/out_src_pod.org | 7 | ||||
| -rw-r--r-- | org/spine.org | 10 | 
4 files changed, 27 insertions, 10 deletions
| diff --git a/org/in_source_files.org b/org/in_source_files.org index a4e2812..db433b0 100644 --- a/org/in_source_files.org +++ b/org/in_source_files.org @@ -133,7 +133,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/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org index 61e702f..dbe3cc9 100644 --- a/org/meta_conf_make_meta.org +++ b/org/meta_conf_make_meta.org @@ -1096,7 +1096,7 @@ if (_struct_composite.meta.creator_author.empty) {    }    _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 @@ -1845,7 +1845,7 @@ if (_struct_composite.meta.creator_author.empty) {    }    _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 @@ -2092,13 +2092,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;    } @@ -2139,8 +2144,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/org/out_src_pod.org b/org/out_src_pod.org index 071f1d7..3fc6d82 100644 --- a/org/out_src_pod.org +++ b/org/out_src_pod.org @@ -232,7 +232,12 @@ auto fn_pod = pths_pod.pod_filename(doc_matters.src.filename).zpod;        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/org/spine.org b/org/spine.org index ed575f0..82cdeb7 100644 --- a/org/spine.org +++ b/org/spine.org @@ -943,7 +943,15 @@ foreach(arg; args[1..$]) {            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) | 
