diff options
-rw-r--r-- | src/api.mjs | 27 | ||||
-rwxr-xr-x | tests/cli-opts.sh | 2 |
2 files changed, 12 insertions, 17 deletions
diff --git a/src/api.mjs b/src/api.mjs index fb62adc..31bb09e 100644 --- a/src/api.mjs +++ b/src/api.mjs @@ -3,23 +3,18 @@ import process from "node:process"; import * as ircd from "./ircd.mjs"; import * as web from "./web.mjs"; -export const main = async () => { - if (process.argv.length === 3 && process.argv[2] === "-V") { - console.log("papo 1970-01-01 0.1.0"); - return; - } - - if (process.argv[2] === "ircd") { - await ircd.app(process.argv[3]); - return; - } +const SUBCOMMANDS = { + ircd: ircd.app, + web: web.app, +}; - if (process.argv[2] === "web") { - await web.app(process.argv[3]); - return; +export const main = async () => { + const [_node, _file, cmdName, ...args] = process.argv; + const cmd = SUBCOMMANDS[cmdName]; + if (cmd === undefined) { + console.error("Usage: papo SUBCOMMAND [OPTIONS]"); + return process.exit(2); } - console.log({ - argv: process.argv, - }); + await cmd(...args); }; diff --git a/tests/cli-opts.sh b/tests/cli-opts.sh index b67ab11..fcb62ca 100755 --- a/tests/cli-opts.sh +++ b/tests/cli-opts.sh @@ -1,4 +1,4 @@ #!/bin/sh set -eu -"$@" -V >&2 +exit |