aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex.lux
diff options
context:
space:
mode:
authorEduardo Julian2020-12-22 21:42:17 -0400
committerEduardo Julian2020-12-22 21:42:17 -0400
commitcad959345afb8bf0bd1e5eefe6c63f136833b3ce (patch)
tree698a0189c6d30109a5ef27d67ab61e037abb011e /stdlib/source/program/aedifex.lux
parent68b1dd82f23d6648ac3d9075a8f84b0174392945 (diff)
Properly naming unicode Block type.
Diffstat (limited to 'stdlib/source/program/aedifex.lux')
-rw-r--r--stdlib/source/program/aedifex.lux34
1 files changed, 21 insertions, 13 deletions
diff --git a/stdlib/source/program/aedifex.lux b/stdlib/source/program/aedifex.lux
index 41d7f9b2f..cfa106407 100644
--- a/stdlib/source/program/aedifex.lux
+++ b/stdlib/source/program/aedifex.lux
@@ -82,18 +82,27 @@
(format (%.text name) " := " (%.text repo)))
(dictionary.entries options))]))
+(def: succeed!
+ (IO Any)
+ (\ program.default exit shell.normal))
+
+(def: (fail! error)
+ (-> Text (IO Any))
+ (exec
+ (log! error)
+ (\ program.default exit shell.error)))
+
(def: (command action)
(All [a] (-> (Promise (Try a)) (IO Any)))
(exec (do promise.monad
- [outcome action
- #let [code (case outcome
- (#try.Failure error)
- (exec (log! error)
- shell.normal)
-
- (#try.Success _)
- shell.error)]]
- (promise.future (\ program.default exit code)))
+ [outcome action]
+ (promise.future
+ (case outcome
+ (#try.Success _)
+ ..succeed!
+
+ (#try.Failure error)
+ (..fail! error))))
(\ io.monad wrap [])))
(program: [{[profile operation] /cli.command}]
@@ -101,7 +110,7 @@
[?console console.default]
(case (try\map console.async ?console)
(#try.Failure error)
- (wrap (log! error))
+ (..fail! error)
(#try.Success console)
(case operation
@@ -114,8 +123,7 @@
[?profile (/input.read io.monad file.default profile)]
(case ?profile
(#try.Failure error)
- (exec (log! error)
- (\ program.default exit shell.error))
+ (..fail! error)
(#try.Success profile)
(let [program (program.async program.default)]
@@ -169,7 +177,7 @@
[?watcher watch.default]
(case ?watcher
(#try.Failure error)
- (wrap (log! error))
+ (..fail! error)
(#try.Success watcher)
(..command