(.module: [lux (#- Name) [abstract [monad (#+ do)]] [control [concurrency ["." promise (#+ Promise)]]] [data [text ["%" format (#+ format)]]] [world ["." file]]] ["." // #_ ["#." build] ["/#" // #_ ["#." action] ["#." command (#+ Command)] ["#." shell] ["#." runtime] [dependency [resolution (#+ Resolution)]]]]) (def: #export (do! fs resolution profile) (-> (file.System Promise) Resolution (Command Any)) (do ///action.monad [[compiler program] (//build.do! fs resolution profile) working-directory (promise.future //build.working-directory) #let [command (case compiler (#//build.JVM artifact) (///runtime.java program) (#//build.JS artifact) (///runtime.node program))] #let [_ (log! "[TEST STARTED]")] outcome (///shell.execute command working-directory) #let [_ (log! "[TEST ENDED]")]] (wrap [])))