main.tri (865B)
1 !import arboricx_app as App 2 !import io as IO 3 !import handlers as H 4 !import handler_artifacts as Artifacts 5 !export main 6 !export startupAction 7 !export startupBody 8 !export storeRoot 9 !export createRootDirectory 10 !export initializeStore 11 !export createView 12 !export initializeView 13 14 -- Keep the actual application's executable tree, including its scoped startup. 15 main = App.main 16 payload (t _ value) = value 17 payload _ = t 18 startupAction = payload (payload main) 19 startupBody = payload startupAction 20 21 -- These are separately materialized views. The startup callback above remains 22 -- opaque: inspection never applies it to invent an owner or follow its effects. 23 storeRoot = "./store" 24 createRootDirectory = IO.createDirectory storeRoot 25 initializeStore = H.runIO (Artifacts.prepareFilesystem storeRoot) 26 createView = IO.io createRootDirectory 27 initializeView = IO.io initializeStore