#!/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 main = ( _argv = Deno.args, ): Promise> => argv(["--run-server", "--port", "--host"], { "--run-server": { absent: false, unspecified: true, present: () => true }, "--port": { absent: 9000, present: (port) => parseInt(port) }, "--host": { absent: "0.0.0.0", present: (host) => host }, }, _argv) .mapRight((args) => ({ server_mode: args["--run-server"], port: args["--port"], host: args["--host"], })) .flatMapAsync((runConfig) => { if (runConfig.server_mode) { return runServer(runConfig.port, runConfig.host); } return Promise.resolve(Either.right(0)); }); if (import.meta.main) { await main().then((eitherDone) => eitherDone.fold(({ isLeft, value }) => { if (!isLeft) return; console.error(`Failed to start`, value); Deno.exit(1); }), ); }