diff options
Diffstat (limited to 'src/sdp/output/source_sisupod.d')
-rw-r--r-- | src/sdp/output/source_sisupod.d | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/sdp/output/source_sisupod.d b/src/sdp/output/source_sisupod.d index db19f68..9c83905 100644 --- a/src/sdp/output/source_sisupod.d +++ b/src/sdp/output/source_sisupod.d @@ -27,6 +27,10 @@ template SiSUpod() { assert (doc_matters.source_filename.match(rgx.src_fn)); try { /+ create directory structure +/ + if (!exists(pth_sisupod.sisupod_dir)) { + // used both by sisupod zipped (& sisupod filesystem (unzipped) which makes its own recursive dirs) + pth_sisupod.sisupod_dir.mkdirRecurse; + } if (doc_matters.opt_action["source"]) { if (!exists(pth_sisupod_filesystem.text_root(doc_matters.source_filename))) { pth_sisupod_filesystem.text_root(doc_matters.source_filename).mkdirRecurse; @@ -50,9 +54,8 @@ template SiSUpod() { debug(sisupod) { writeln(__LINE__, ": ", doc_matters.source_filename, " -> ", - pth_sisupod_filesystem.fn_doc( - doc_matters.source_filename, - )); + pth_sisupod_filesystem.fn_doc(doc_matters.source_filename) + ); } auto zip = new ZipArchive(); auto fn_sisupod = pth_sisupod.sisupod_filename(doc_matters.source_filename); @@ -78,7 +81,6 @@ template SiSUpod() { zip_data.write(cast(char[]) ((fn_src).read)); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - createZipFile!()(pth_sisupod.sisupod_filename(fn_src), zip.build()); } } } @@ -98,7 +100,6 @@ template SiSUpod() { zip_data.write((fn_src).readText); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - createZipFile!()(pth_sisupod.sisupod_filename(fn_src), zip.build()); } } } @@ -117,7 +118,6 @@ template SiSUpod() { zip_data.write((fn_src).readText); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - createZipFile!()(pth_sisupod.sisupod_filename(fn_src), zip.build()); } } } @@ -147,17 +147,25 @@ template SiSUpod() { } if (doc_matters.opt_action["sisupod"]) { auto zip_arc_member_file = new ArchiveMember(); - zip_arc_member_file.name = insert_file; + zip_arc_member_file.name = fn_out; auto zip_data = new OutBuffer(); zip_data.write((fn_src).readText); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - createZipFile!()(pth_sisupod.sisupod_filename(fn_src), zip.build()); + createZipFile!()(fn_sisupod, zip.build()); } } } } } + { + auto fn_src = doc_matters.source_filename; + if (exists(fn_src)) { + if (doc_matters.opt_action["sisupod"]) { + createZipFile!()(fn_sisupod, zip.build()); + } + } + } if (exists(fn_sisupod)) { try { auto data = (cast(byte[]) (fn_sisupod).read); |