aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/program/aedifex.lux')
-rw-r--r--stdlib/source/program/aedifex.lux132
1 files changed, 71 insertions, 61 deletions
diff --git a/stdlib/source/program/aedifex.lux b/stdlib/source/program/aedifex.lux
index 06b75afd5..d804fd552 100644
--- a/stdlib/source/program/aedifex.lux
+++ b/stdlib/source/program/aedifex.lux
@@ -5,7 +5,7 @@
[control
[pipe (#+ do>)]
["." io (#+ IO)]
- ["." try (#+ Try)]
+ ["." try (#+ Try) ("#\." functor)]
["." exception (#+ exception:)]
[parser
["." cli (#+ program:)]
@@ -86,70 +86,80 @@
(program: [{[profile operation] /cli.command}]
(do {! io.monad}
- [?profile (/input.read io.monad file.default profile)
- ?console console.default]
- (case [?profile ?console]
- [(#try.Success profile) (#try.Success console)]
- (let [console (console.async console)]
- (case operation
- #/cli.Version
- (exec (/command/version.do! console profile)
- (wrap []))
-
- #/cli.Clean
- (exec (/command/clean.do! console (file.async file.default) profile)
- (wrap []))
+ [?console console.default]
+ (case (try\map console.async ?console)
+ (#try.Failure error)
+ (wrap (log! error))
- #/cli.POM
- (exec (/command/pom.do! console (file.async file.default) profile)
- (wrap []))
-
- #/cli.Install
- (exec (/command/install.do! console (file.async file.default) profile)
- (wrap []))
+ (#try.Success console)
+ (case operation
+ #/cli.Version
+ (exec (/command/version.do! console (\ /.monoid identity))
+ (wrap []))
- (#/cli.Deploy repository identity)
- (exec (case [(get@ #/.identity profile)
- (dictionary.get repository (get@ #/.deploy-repositories profile))]
- [(#.Some artifact) (#.Some repository)]
- (/command/deploy.do! console
- (/repository.async (/repository.remote repository))
- (file.async file.default)
- identity
- artifact
- profile)
+ _
+ (do !
+ [?profile (/input.read io.monad file.default profile)]
+ (case ?profile
+ (#try.Failure error)
+ (wrap (log! error))
- [#.None _]
- (promise\wrap (exception.throw /.no-identity []))
+ (#try.Success profile)
+ (case operation
+ #/cli.Version
+ (wrap [])
+
+ #/cli.Clean
+ (exec (/command/clean.do! console (file.async file.default) profile)
+ (wrap []))
+
+ #/cli.POM
+ (exec (/command/pom.do! console (file.async file.default) profile)
+ (wrap []))
+
+ #/cli.Install
+ (exec (/command/install.do! console (file.async file.default) profile)
+ (wrap []))
- [_ #.None]
- (promise\wrap (exception.throw ..cannot-find-repository [repository (get@ #/.deploy-repositories profile)])))
- (wrap []))
-
- #/cli.Dependencies
- (exec (/command/deps.do! console (file.async file.default) (..repositories profile) profile)
- (wrap []))
+ (#/cli.Deploy repository identity)
+ (exec (case [(get@ #/.identity profile)
+ (dictionary.get repository (get@ #/.deploy-repositories profile))]
+ [(#.Some artifact) (#.Some repository)]
+ (/command/deploy.do! console
+ (/repository.async (/repository.remote repository))
+ (file.async file.default)
+ identity
+ artifact
+ profile)
- (#/cli.Compilation compilation)
- (case compilation
- #/cli.Build (exec (..with-dependencies console /command/build.do! profile)
- (wrap []))
- #/cli.Test (exec (..with-dependencies console /command/test.do! profile)
- (wrap [])))
+ [#.None _]
+ (promise\wrap (exception.throw /.no-identity []))
- (#/cli.Auto auto)
- (do !
- [?watcher watch.default]
- (case ?watcher
- (#try.Failure error)
- (wrap (log! error))
+ [_ #.None]
+ (promise\wrap (exception.throw ..cannot-find-repository [repository (get@ #/.deploy-repositories profile)])))
+ (wrap []))
- (#try.Success watcher)
- (exec (case auto
- #/cli.Build (..with-dependencies console (/command/auto.do! watcher /command/build.do!) profile)
- #/cli.Test (..with-dependencies console (/command/auto.do! watcher /command/test.do!) profile))
- (wrap []))))))
-
- (^or [(#try.Failure error) _]
- [_ (#try.Failure error)])
- (wrap (log! error)))))
+ #/cli.Dependencies
+ (exec (/command/deps.do! console (file.async file.default) (..repositories profile) profile)
+ (wrap []))
+
+ (#/cli.Compilation compilation)
+ (case compilation
+ #/cli.Build (exec (..with-dependencies console /command/build.do! profile)
+ (wrap []))
+ #/cli.Test (exec (..with-dependencies console /command/test.do! profile)
+ (wrap [])))
+
+ (#/cli.Auto auto)
+ (do !
+ [?watcher watch.default]
+ (case ?watcher
+ (#try.Failure error)
+ (wrap (log! error))
+
+ (#try.Success watcher)
+ (exec (case auto
+ #/cli.Build (..with-dependencies console (/command/auto.do! watcher /command/build.do!) profile)
+ #/cli.Test (..with-dependencies console (/command/auto.do! watcher /command/test.do!) profile))
+ (wrap [])))))
+ ))))))