aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/command/test.lux
blob: a27c07f10ea51a0de633bc648b8b8ed6d73ef520 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(.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 [])))