diff options
author | Elizabeth <me@liz.coffee> | 2025-06-02 18:07:31 -0700 |
---|---|---|
committer | Elizabeth <me@liz.coffee> | 2025-06-02 18:07:31 -0700 |
commit | d9c418425b035f00c950e6a83df9470d7af80413 (patch) | |
tree | 07c7445d7800a6ac6a3cf6b404ebcf4e27aad245 /mod.ts | |
parent | 98f5c21aa65bbbca01a186a754249335b4afef57 (diff) | |
download | ci-d9c418425b035f00c950e6a83df9470d7af80413.tar.gz ci-d9c418425b035f00c950e6a83df9470d7af80413.zip |
Use log traceable in metric traceable
Diffstat (limited to 'mod.ts')
-rwxr-xr-x | mod.ts | 47 |
1 files changed, 26 insertions, 21 deletions
@@ -1,31 +1,36 @@ #!/usr/bin/env -S deno run --allow-env --allow-net -import { argv } from "@emprespresso/pengueno"; +import { argv, IEither, Either } from "@emprespresso/pengueno"; import { runServer } from "@emprespresso/ci_server"; -const main = (_argv = Deno.args) => { - const defaults = { - "--port": "9000", - "--host": "0.0.0.0", - }; - const _args = argv(["--run-server", "--port", "--host"], defaults, _argv); - const args = _args.fold((err, args) => { - if (!args || err) throw err; - return { +const _defaults = { + "--port": "9000", + "--host": "0.0.0.0", +}; +const main = ( + _argv = Deno.args, + defaults = _defaults, +): Promise<IEither<Error, void>> => + argv(["--run-server", "--port", "--host"], defaults, _argv) + .mapRight((args) => ({ server_mode: "--run-server" in args, port: parseInt(args["--port"]), host: args["--host"], - }; - }); - - const promises: Array<Promise<void>> = []; - if (args.server_mode) { - promises.push(runServer(args.port, args.host)); - } - - return Promise.all(promises); -}; + })) + .flatMapAsync((runConfig) => { + if (runConfig.server_mode) { + return runServer(runConfig.port, runConfig.host); + } + return Promise.resolve(Either.right(undefined)); + }); if (import.meta.main) { - await main(); + await main().then((eitherDone) => + eitherDone.fold(({ isLeft, value }) => { + if (!isLeft) return; + + console.error(value); + Deno.exit(1); + }), + ); } |