aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/output/source_sisupod.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp/output/source_sisupod.d')
-rw-r--r--src/sdp/output/source_sisupod.d24
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);