consumer_cached_summary_build.tri (2628B)
1 -- One-time verified SCP build. Publish *compiled workers* under a separate 2 -- executable manifest, not merely the authored IR manifest of clPrepare. 3 !import "prelude" !Local 4 !import "io" !Local 5 !import "consumers.module" M 6 !import "consumers.link" CL 7 !import "source.module" Module 8 !import "source.resolve" Resolve 9 !import "consumers.text-summary" Summary 10 11 root = "__ROOT__" 12 row alias hash name = pair alias (pair hash name) 13 stage = do onOk_ 14 succSource <- readFile "lib/consumer/succ.scp" 15 succHash <- M.cmPutSource root succSource 16 counterSource <- readFile "lib/consumer/text/countLines.scp" 17 counterHash <- M.cmPutSource root counterSource 18 entrySource <- readFile "demos/consumers/text-summary/summary-entry.scp" 19 entryHash <- M.cmPutSource root entrySource 20 receiverSource <- readFile "demos/consumers/text-summary/summary-receiver.scp" 21 receiverHash <- M.cmPutSource root receiverSource 22 M.cmPutImports root [(row "successor" succHash "succBinary") 23 (row "counter" counterHash "countLines") 24 (row "entry" entryHash "summaryEntry") 25 (row "receiver" receiverHash "summaryReceiver")] 26 selections successor = [(pair "counter" (Summary.counterState successor)) 27 (pair "entry" t) (pair "receiver" t)] 28 lookup workers alias = (lazyMaybe (_ : t) (worker : worker) 29 (Resolve.sourceFindExternal workers alias)) 30 application workers = (path : io (bind 31 (Summary.summaryLexical (lookup workers "counter") 32 (lookup workers "entry") (lookup workers "receiver") path) 33 (outcome : putStrLn (Summary.render outcome)))) 34 publish descriptor successor = (onResult_ 35 (CL.clPrepare root descriptor (selections successor)) 36 (_ : putStrLn "BUILD_FAILED") 37 (prepared : let workers = fst (snd prepared) in 38 onResult_ (Module.sourceModulePublishNames root workers 39 (CL.clNames (selections successor))) 40 (_ : putStrLn "BUILD_FAILED") 41 (workerManifest : onResult_ 42 (Module.sourceModulePublishNames root 43 [(pair "run" (application workers))] ["run"]) 44 (_ : putStrLn "BUILD_FAILED") 45 (appManifest : thenIO 46 (putStrLn (append "authored-manifest=" (fst prepared))) 47 (thenIO (putStrLn (append "worker-manifest=" workerManifest)) 48 (putStrLn (append "app-manifest=" appManifest))))))) 49 run = (onResult_ stage 50 (_ : putStrLn "BUILD_FAILED") 51 (descriptor : onResult_ (CL.clPrepare root descriptor [(pair "successor" t)]) 52 (_ : putStrLn "BUILD_FAILED") 53 (prepared : lazyMaybe 54 (_ : putStrLn "BUILD_FAILED") 55 (successor : publish descriptor successor) 56 (Resolve.sourceFindExternal (fst (snd prepared)) "successor")))) 57 main = io run 58 main