From cad959345afb8bf0bd1e5eefe6c63f136833b3ce Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 22 Dec 2020 21:42:17 -0400 Subject: Properly naming unicode Block type. --- stdlib/source/program/aedifex.lux | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'stdlib/source/program/aedifex.lux') 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 -- cgit v1.2.3