#!/usr/bin/env -S deno run --allow-env --allow-net --allow-run import { argv, IEither, Either } from "@emprespresso/pengueno"; import { runServer } from "@emprespresso/ci_server"; const _defaults = { "--port": "9000", "--host": "0.0.0.0", }; const main = ( _argv = Deno.args, defaults = _defaults, ): Promise> => argv(["--run-server", "--port", "--host"], defaults, _argv) .mapRight((args) => ({ server_mode: "--run-server" in args, port: parseInt(args["--port"]), host: args["--host"], })) .flatMapAsync((runConfig) => { if (runConfig.server_mode) { return runServer(runConfig.port, runConfig.host); } return Promise.resolve(Either.right(undefined)); }); if (import.meta.main) { await main().then((eitherDone) => eitherDone.fold(({ isLeft, value }) => { if (!isLeft) return; console.error(`Failed to start`, value); Deno.exit(1); }), ); }