aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/sdp.d
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2017-11-20 13:44:08 -0500
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:14 -0400
commitc8f3ea1fe9389f720546534ca57b050f16e34a8c (patch)
treea3759fde79fe71ca3d02257b69912f9bac6770ad /src/sdp/sdp.d
parentprocess filesystem/unzipped sisupod.zip (diff)
process pod dir with sisudoc.txt (or file)
- process multiple files named in sisudoc.txt - works with multilingual doc with inserts - regex fixes were needed
Diffstat (limited to 'src/sdp/sdp.d')
-rwxr-xr-xsrc/sdp/sdp.d29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d
index c861d1d..375f91f 100755
--- a/src/sdp/sdp.d
+++ b/src/sdp/sdp.d
@@ -10,6 +10,8 @@ import
sdp.meta.metadoc;
import
std.getopt,
+ std.file,
+ std.path,
std.process;
import
sdp.meta,
@@ -145,13 +147,20 @@ void main(string[] args) {
flag_action ~= " " ~ arg; // flags not taken by getopt
} else if (arg.match(rgx.src_pth)) {
fns_src ~= arg; // gather input markup source file names for processing
- } else if (arg.match(rgx.src_pth_contents)) {
- import std.file,
- std.path;
+ } else if (arg.match(rgx.src_pth_contents)
+ || ((arg.isDir) && ((arg.chainPath("sisudoc.txt").array).isFile))
+ ) {
string contents_location_;
+ string sisudoc_txt_;
+ if ((arg.chainPath("sisudoc.txt").array).isFile) {
+ sisudoc_txt_ = arg.chainPath("sisudoc.txt").array;
+ } else if (arg.match(rgx.src_pth_contents)) {
+ sisudoc_txt_ = arg;
+ } else {
+ }
try {
- if (exists(arg)) {
- contents_location_ = arg.readText;
+ if (exists(sisudoc_txt_)) {
+ contents_location_ = sisudoc_txt_.readText;
}
}
catch (ErrnoException ex) {
@@ -161,11 +170,11 @@ void main(string[] args) {
}
auto contents_locations_arr =
(cast(char[]) contents_location_).split;
- auto tmp_dir_ = (arg).dirName.array;
+ auto tmp_dir_ = (sisudoc_txt_).dirName.array;
foreach (contents_location; contents_locations_arr) {
assert(contents_location.match(rgx.src_pth),
- "not a recognised file: " ~
- contents_location
+ "not a recognised file: «" ~
+ contents_location ~ "»"
);
auto contents_location_pth_ = (contents_location).to!string;
fns_src ~= (((tmp_dir_).chainPath(contents_location_pth_)).array).to!(char[]);
@@ -206,8 +215,8 @@ void main(string[] args) {
}
enforce(
fn_src.match(rgx.src_pth_types),
- "not a sisu markup filename: <<" ~
- fn_src ~ ">>"
+ "not a sisu markup filename: «" ~
+ fn_src ~ "»"
);
auto t = SiSUabstraction!()(fn_src, opts, env);
static assert(!isTypeTuple!(t));