From 1d68345250b0fd26d3ea657ed28899dccaa324df Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Wed, 8 Nov 2017 20:02:48 -0500 Subject: process filesystem/unzipped sisupod.zip - src pod dir structure changes - notes - the plan is to have a src manifest of related .sst or .ssm files that can be pointed to for processing - multilingual documents [ponder persistence for multilingual documents] - in the case of multilingual documents, there will be multiple source documents on list with different language codes, and to build this list, persistence is required - inserted documents (from master .ssm or .sst) must track document root so inserts can be located, else not found - consider a commandline -o --output path specifier - steps - auto create filelist - for single source file - for multilinugual source files - process document by pointing at filelist (rather than file) - if necessary manually create filelist (for multilinugual source) - keep document root for document inserts (.ssi) process filesystem/unzipped sisupod.zip - source/sisupod path/dir structure representation changes --- src/sdp/output/paths_output.d | 320 +++++++++++++++++++++++++++++++----------- 1 file changed, 236 insertions(+), 84 deletions(-) (limited to 'src/sdp/output/paths_output.d') diff --git a/src/sdp/output/paths_output.d b/src/sdp/output/paths_output.d index 2204965..a5ea0d9 100644 --- a/src/sdp/output/paths_output.d +++ b/src/sdp/output/paths_output.d @@ -10,131 +10,283 @@ import sdp.meta.rgx; template SiSUpathsSisupod() { mixin SiSUrgxInit; static auto rgx = Rgx(); - string _base_dir = "sisupod"; + string _base_dir_pod = "sisupod"; + string _base_dir_doc = "sisudoc"; string _suffix = ".zip"; auto SiSUpathsSisupod()() { struct _PathsStruct { string base_filename(string fn_src) { - return fn_src.baseName.stripExtension; + auto pth = fn_src.baseName.stripExtension; + return pth; } string sisupod_dir() { - return _base_dir; + auto pth = _base_dir_pod; + return pth; + } + string sisudoc_dir() { + auto pth = _base_dir_doc; + return pth; } string sisupod_filename(string fn_src) { - return _base_dir.chainPath(base_filename(fn_src) ~ _suffix).array; + string pth = _base_dir_pod.chainPath(base_filename(fn_src) ~ _suffix).array; + return pth; } - string base(string fn_src) { - return _base_dir.chainPath(base_filename(fn_src)).array; + string base_filesystem(string fn_src) { + string pth = _base_dir_pod.chainPath(base_filename(fn_src)).array; + assert(pth == _base_dir_pod ~ "/" ~ base_filename(fn_src), + pth ~ " == " ~ _base_dir_pod ~ "/" ~ base_filename(fn_src) ~ "?"); + return pth; + } + string base_pod(string fn_src) { + string pth = _base_dir_pod.chainPath(base_filename(fn_src)).array; // change this + return pth; } } return _PathsStruct(); } } -template SiSUpathsSisupodZipped() { + +template SiSUpathsSisupods() { mixin SiSUrgxInit; static auto rgx = Rgx(); - auto SiSUpathsSisupodZipped(Ps,Lng)( + string _base_dir_pod = "sisupod"; + string _base_dir_doc = "sisudoc"; + string _suffix = ".zip"; + auto SiSUpathsSisupods(Ps,Lng)( Ps src_pth_info, Lng lng, ) { - struct _PathsStruct { - auto spod_pths = SiSUpathsSisupod!()(); - string sisupod_dir() { - return spod_pths.sisupod_dir; - } - string base_filename(string fn_src) { - return spod_pths.base_filename(fn_src); - } - string sisupod_filename(string fn_src) { - return spod_pths.sisupod_filename(fn_src); - } - string base(string fn_src) { - return spod_pths.base(fn_src); + struct _PodPaths { + string base_filename_(string fn_src) { + auto pth = fn_src.baseName.stripExtension; + return pth; + } + string sisupod_dir_() { + auto pth = _base_dir_pod; + return pth; + } + string sisudoc_dir_() { + auto pth = _base_dir_doc; + return pth; + } + string sisupod_filename_(string fn_src) { + string pth = _base_dir_pod.chainPath(base_filename_(fn_src) ~ _suffix).array; + return pth; + } + string base_filesystem_(string fn_src) { + string pth = _base_dir_pod.chainPath(base_filename_(fn_src)).array; + assert(pth == _base_dir_pod ~ "/" ~ base_filename_(fn_src), + pth ~ " == " ~ _base_dir_pod ~ "/" ~ base_filename_(fn_src) ~ "?"); + return pth; + } + string base_pod_(string fn_src) { + string pth = _base_dir_pod.chainPath(base_filename_(fn_src)).array; // change this + return pth; + } + auto base_filename(string fn_src) { + auto pth_1_ = base_filename_(fn_src); + auto pth_2_ = base_filename_(fn_src); + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + return pth_2_; + } + } + return _pods(); + } + auto sisupod_filename(string fn_src) { + auto pth_1_ = sisupod_filename_(fn_src); + auto pth_2_ = sisupod_filename_(fn_src); + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + return pth_2_; + } + } + return _pods(); + } + auto base(string fn_src) { + auto pth_1_ = ""; + auto pth_2_ = base_filesystem_(fn_src); + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + return pth_2_; + } + } + return _pods(); } auto pod_root(string fn_src) { - return "sisudoc"; - } - auto media_root(string fn_src) { - return pod_root(fn_src).chainPath("media").array; + auto pth_1_ = ""; + auto pth_2_ = base(fn_src).filesystem_open_zpod.chainPath("").array; // "sisudoc" + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + return pth_2_; + } + } + return _pods(); } auto conf_root(string fn_src) { - return pod_root(fn_src).chainPath("conf").array; - } - auto text_root(string fn_src) { - return media_root(fn_src).chainPath("text").array; - } - auto doc(string fn_src) { - return text_root(fn_src); - } - auto doc_lng(string fn_src) { - return text_root(fn_src).chainPath(lng).array; - } - auto image_root(string fn_src) { - return media_root(fn_src).chainPath("image").array; + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = "conf"; + auto pth_2_ = pod_root(fn_src).filesystem_open_zpod.chainPath("conf").array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } auto css(string fn_src) { - return conf_root(fn_src).chainPath("css").array; - } - auto fn_doc(string fn_src) { - return (doc_lng(fn_src)).chainPath(fn_src.baseName).array; - } - auto fn_doc_insert(string fn_src, string fn_insert) { - return (doc_lng(fn_src)).chainPath(fn_insert.baseName).array; - } - } - return _PathsStruct(); - } -} -template SiSUpathsSisupodFileSystem() { - mixin SiSUrgxInit; - static auto rgx = Rgx(); - auto SiSUpathsSisupodFileSystem(Ps,Lng)( - Ps src_pth_info, - Lng lng, - ) { - struct _PathsStruct { - auto spod_pths = SiSUpathsSisupod!()(); - string base_filename(string fn_src) { - return spod_pths.base_filename(fn_src); - } - string sisupod_filename(string fn_src) { - return spod_pths.sisupod_filename(fn_src); - } - string base(string fn_src) { - return spod_pths.base(fn_src); - } - auto pod_root(string fn_src) { - return base(fn_src).chainPath("sisudoc").array; + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = conf_root(fn_src).zpod.chainPath("css").array; + auto pth_2_ = conf_root(fn_src).filesystem_open_zpod.chainPath("css").array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } auto media_root(string fn_src) { - return pod_root(fn_src).chainPath("media").array; - } - auto conf_root(string fn_src) { - return pod_root(fn_src).chainPath("conf").array; + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = "media"; + auto pth_2_ = pod_root(fn_src).filesystem_open_zpod.chainPath("media").array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } auto text_root(string fn_src) { - return media_root(fn_src).chainPath("text").array; + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = media_root(fn_src).zpod.chainPath("text").array; + auto pth_2_ = media_root(fn_src).filesystem_open_zpod.chainPath("text").array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } auto doc(string fn_src) { - return pod_root(fn_src); + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = text_root(fn_src).zpod; + auto pth_2_ = text_root(fn_src).filesystem_open_zpod; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } auto doc_lng(string fn_src) { - return text_root(fn_src).chainPath(lng).array; + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = text_root(fn_src).zpod.chainPath(lng).array; + auto pth_2_ = text_root(fn_src).filesystem_open_zpod.chainPath(lng).array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } auto image_root(string fn_src) { - return media_root(fn_src).chainPath("image").array; - } - auto css(string fn_src) { - return conf_root(fn_src).chainPath("css").array; + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = media_root(fn_src).zpod.chainPath("image").array; + auto pth_2_ = media_root(fn_src).filesystem_open_zpod.chainPath("image").array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); + } + auto fn_pod_filelist(string fn_src) { + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = "sisudoc.txt"; + auto pth_2_ = pod_root(fn_src).filesystem_open_zpod.chainPath("sisudoc.txt").array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } auto fn_doc(string fn_src) { - return (doc_lng(fn_src)).chainPath(fn_src.baseName).array; + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = doc_lng(fn_src).zpod.chainPath(fn_src.baseName).array; + auto pth_2_ = doc_lng(fn_src).filesystem_open_zpod.chainPath(fn_src.baseName).array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } auto fn_doc_insert(string fn_src, string fn_insert) { - return (doc_lng(fn_src)).chainPath(fn_insert.baseName).array; + auto pod_root_ = pod_root(fn_src); + auto pth_1_ = doc_lng(fn_src).zpod.chainPath(fn_insert.baseName).array; + auto pth_2_ = doc_lng(fn_src).filesystem_open_zpod.chainPath(fn_insert.baseName).array; + struct _pods { + auto zpod() { + return pth_1_; + } + auto filesystem_open_zpod() { + assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); + return pth_2_; + } + } + return _pods(); } } - return _PathsStruct(); + return _PodPaths(); } } template SiSUoutPaths() { -- cgit v1.2.3