aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/command
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/program/aedifex/command/auto.lux13
-rw-r--r--stdlib/source/program/aedifex/command/build.lux71
-rw-r--r--stdlib/source/program/aedifex/command/test.lux45
3 files changed, 63 insertions, 66 deletions
diff --git a/stdlib/source/program/aedifex/command/auto.lux b/stdlib/source/program/aedifex/command/auto.lux
index a2f2b1ff5..4b151861b 100644
--- a/stdlib/source/program/aedifex/command/auto.lux
+++ b/stdlib/source/program/aedifex/command/auto.lux
@@ -7,14 +7,13 @@
[concurrency
["." promise (#+ Promise)]]
[security
- ["!" capability]]
- [parser
- [environment (#+ Environment)]]]
+ ["!" capability]]]
[data
[collection
["." list]
["." set]]]
[world
+ [program (#+ Program)]
[shell (#+ Shell)]
["." console (#+ Console)]
["." file (#+ Path)
@@ -50,11 +49,11 @@
(def: #export (do! watcher command)
(All [a]
(-> (Watcher Promise)
- (-> (Console Promise) Environment (file.System Promise) (Shell Promise) Resolution (Command a))
- (-> (Console Promise) Environment (file.System Promise) (Shell Promise) Resolution (Command Any))))
- (function (_ console environment fs shell resolution)
+ (-> (Console Promise) (Program Promise) (file.System Promise) (Shell Promise) Resolution (Command a))
+ (-> (Console Promise) (Program Promise) (file.System Promise) (Shell Promise) Resolution (Command Any))))
+ (function (_ console program fs shell resolution)
(function (_ profile)
- (with-expansions [<call> ((command console environment fs shell resolution) profile)]
+ (with-expansions [<call> ((command console program fs shell resolution) profile)]
(do {! promise.monad}
[targets (|> profile
(get@ #///.sources)
diff --git a/stdlib/source/program/aedifex/command/build.lux b/stdlib/source/program/aedifex/command/build.lux
index 78e38a6c5..8960d9c75 100644
--- a/stdlib/source/program/aedifex/command/build.lux
+++ b/stdlib/source/program/aedifex/command/build.lux
@@ -9,9 +9,7 @@
[concurrency
["." promise (#+ Promise) ("#\." monad)]]
[security
- ["!" capability]]
- [parser
- [environment (#+ Environment)]]]
+ ["!" capability]]]
[data
["." product]
["." maybe]
@@ -24,6 +22,7 @@
[number
["i" int]]]
[world
+ [program (#+ Program)]
["." file (#+ Path)]
["." shell (#+ Shell)]
["." console (#+ Console)]]]
@@ -108,10 +107,6 @@
(list.filter (|>> (get@ #///dependency.type) (text\= ///artifact/type.lux-library)))
(list\map (|>> (get@ #///dependency.artifact) (///local.path fs)))))
-(def: #export working-directory
- (-> Environment (Try Text))
- (|>> (dictionary.get "user.dir") try.from-maybe))
-
(def: (singular name)
(-> Text Text (List Text))
(|>> (list name)))
@@ -124,8 +119,8 @@
(def: #export success "[BUILD ENDED]")
(def: #export failure "[BUILD FAILED]")
-(def: #export (do! console environment fs shell resolution profile)
- (-> (Console Promise) Environment (file.System Promise) (Shell Promise) Resolution (Command [Compiler Path]))
+(def: #export (do! console program fs shell resolution profile)
+ (-> (Console Promise) (Program Promise) (file.System Promise) (Shell Promise) Resolution (Command [Compiler Path]))
(case [(get@ #///.program profile)
(get@ #///.target profile)]
[#.None _]
@@ -134,31 +129,33 @@
[_ #.None]
(promise\wrap (exception.throw ..no-specified-target []))
- [(#.Some program) (#.Some target)]
- (do ///action.monad
- [[resolution compiler] (promise\wrap (..compiler resolution))
- working-directory (promise\wrap (..working-directory environment))
- #let [[command output] (let [[compiler output] (case compiler
- (#JVM artifact) [(///runtime.java (///local.path fs artifact))
- "program.jar"]
- (#JS artifact) [(///runtime.node (///local.path fs artifact))
- "program.js"])]
- [(format compiler " build") output])
- / (\ fs separator)
- cache-directory (format working-directory / target)]
- _ (console.write-line ..start console)
- process (!.use (\ shell execute)
- [environment
- working-directory
- command
- (list.concat (list (..plural "--library" (..libraries fs resolution))
- (..plural "--source" (set.to-list (get@ #///.sources profile)))
- (..singular "--target" cache-directory)
- (..singular "--module" program)))])
- exit (!.use (\ process await) [])
- _ (console.write-line (if (i.= shell.normal exit)
- ..success
- ..failure)
- console)]
- (wrap [compiler
- (format cache-directory / output)]))))
+ [(#.Some program-module) (#.Some target)]
+ (do promise.monad
+ [environment (\ program environment [])
+ working-directory (\ program directory [])]
+ (do ///action.monad
+ [[resolution compiler] (promise\wrap (..compiler resolution))
+ #let [[command output] (let [[compiler output] (case compiler
+ (#JVM artifact) [(///runtime.java (///local.path fs artifact))
+ "program.jar"]
+ (#JS artifact) [(///runtime.node (///local.path fs artifact))
+ "program.js"])]
+ [(format compiler " build") output])
+ / (\ fs separator)
+ cache-directory (format working-directory / target)]
+ _ (console.write-line ..start console)
+ process (!.use (\ shell execute)
+ [environment
+ working-directory
+ command
+ (list.concat (list (..plural "--library" (..libraries fs resolution))
+ (..plural "--source" (set.to-list (get@ #///.sources profile)))
+ (..singular "--target" cache-directory)
+ (..singular "--module" program-module)))])
+ exit (!.use (\ process await) [])
+ _ (console.write-line (if (i.= shell.normal exit)
+ ..success
+ ..failure)
+ console)]
+ (wrap [compiler
+ (format cache-directory / output)])))))
diff --git a/stdlib/source/program/aedifex/command/test.lux b/stdlib/source/program/aedifex/command/test.lux
index 3b5afaabf..089417b94 100644
--- a/stdlib/source/program/aedifex/command/test.lux
+++ b/stdlib/source/program/aedifex/command/test.lux
@@ -6,15 +6,14 @@
[concurrency
["." promise (#+ Promise) ("#\." monad)]]
[security
- ["!" capability]]
- [parser
- [environment (#+ Environment)]]]
+ ["!" capability]]]
[data
[text
["%" format (#+ format)]]
[number
["i" int]]]
[world
+ [program (#+ Program)]
["." file]
["." shell (#+ Shell)]
["." console (#+ Console)]]]
@@ -31,22 +30,24 @@
(def: #export success "[TEST ENDED]")
(def: #export failure "[TEST FAILED]")
-(def: #export (do! console environment fs shell resolution profile)
- (-> (Console Promise) Environment (file.System Promise) (Shell Promise) Resolution (Command Any))
- (do ///action.monad
- [[compiler program] (//build.do! console environment fs shell resolution profile)
- working-directory (promise\wrap (//build.working-directory environment))
- _ (console.write-line ..start console)
- process (!.use (\ shell execute)
- [environment
- working-directory
- (case compiler
- (#//build.JVM artifact) (///runtime.java program)
- (#//build.JS artifact) (///runtime.node program))
- (list)])
- exit (!.use (\ process await) [])
- _ (console.write-line (if (i.= shell.normal exit)
- ..success
- ..failure)
- console)]
- (wrap [])))
+(def: #export (do! console program fs shell resolution profile)
+ (-> (Console Promise) (Program Promise) (file.System Promise) (Shell Promise) Resolution (Command Any))
+ (do promise.monad
+ [environment (\ program environment [])
+ working-directory (\ program directory [])]
+ (do ///action.monad
+ [[compiler program] (//build.do! console program fs shell resolution profile)
+ _ (console.write-line ..start console)
+ process (!.use (\ shell execute)
+ [environment
+ working-directory
+ (case compiler
+ (#//build.JVM artifact) (///runtime.java program)
+ (#//build.JS artifact) (///runtime.node program))
+ (list)])
+ exit (!.use (\ process await) [])
+ _ (console.write-line (if (i.= shell.normal exit)
+ ..success
+ ..failure)
+ console)]
+ (wrap []))))