(.module: [lux (#- Name) [abstract [monad (#+ do)]] [control [concurrency ["." promise]]] [data [text ["%" format (#+ format)]]]] ["." // #_ ["#." build] ["/#" // #_ ["#." action] ["#." command (#+ Command)] ["#." shell]]]) (def: #export (do! project) (Command Any) (do ///action.monad [[compiler program] (//build.do! project) working-directory (promise.future //build.working-directory) #let [command (case compiler (#//build.JVM artifact) (format "java -jar " program) (#//build.JS artifact) (format "node --stack_size=8192 " program))] #let [_ (log! "[TEST STARTED]")] outcome (///shell.execute command working-directory) #let [_ (log! "[TEST ENDED]")]] (wrap [])))