From 7448fe54c582f1c2535c3a41bfb51ac4e00161a6 Mon Sep 17 00:00:00 2001 From: s-ol Date: Mon, 7 Oct 2019 14:17:58 +0000 Subject: SQL import and loading --- render_all.moon | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) (limited to 'render_all.moon') diff --git a/render_all.moon b/render_all.moon index 3d295c9..e2f171e 100644 --- a/render_all.moon +++ b/render_all.moon @@ -10,7 +10,6 @@ add '?/init.server' require 'mmm' import tohtml from require 'mmm.component' import Browser from require 'mmm.mmmfs.browser' -import load_tree from require 'mmm.mmmfs.zip' import get_meta, header, footer from require 'build.layout' export BROWSER @@ -70,7 +69,46 @@ render = (fileder, output) -> " \close! -for fileder in coroutine.wrap load_tree!\iterate +import SQLStore from require 'mmm.mmmfs.drivers.sql' +import Fileder, Key from require 'mmm.mmmfs.fileder' + +-- split filename into dirname + basename +dir_base = (path) -> + dir, base = path\match '(.-)([^/]-)$' + if dir and #dir > 0 + dir = dir\sub 1, #dir - 1 + + dir, base + +load_tree = (store, root='') -> + fileders = setmetatable {}, + __index: (path) => + with val = Fileder {} + .path = path + rawset @, path, val + + root = fileders[root] + root.facets['name: alpha'] = '' + for fn, ft in store\list_facets root.path + val = store\load_facet root.path, fn, ft + root.facets[Key fn, ft] = val + + for path in store\list_all_fileders root.path + fileder = fileders[path] + + parent, name = dir_base path + fileder.facets['name: alpha'] = name + table.insert fileders[parent].children, fileder + + for fn, ft in store\list_facets path + val = store\load_facet path, fn, ft + fileder.facets[Key fn, ft] = val + + root + +tree = load_tree SQLStore! + +for fileder in coroutine.wrap tree\iterate print "rendering '#{fileder.path}'..." os.execute "mkdir -p 'out/#{fileder.path}'" render fileder, "out/#{fileder.path}/index.html" -- cgit v1.2.3