import {default as createLogger, getLevel} from "../logger/index.js"; import yargs from "yargs/yargs"; import { startServer } from "../grpc/index.js"; import pubsub from "./pubsub.js"; const argv = yargs(process.argv.slice(2)) .option("port", { alias: "p", demandOption: true, default: 50051, describe: "Listen on this port for incoming client connections", type: "number", }) .option("bind", { alias: "b", demandOption: true, default: "0.0.0.0", describe: "Which IP to bind to", type: "string", }) .option("verbose", { alias: "v", default: 2, describe: "Verbosity level, 0 to 6, 0=error, 1=warn, 2=info, 3+=debug", type: "number", }) .help() .alias("help", "h").argv; const logger = createLogger({level: getLevel(argv.verbose), postfix: "server"}) const address = `${argv.bind}:${argv.port}`; const server = startServer(address, pubsub({ logger }), logger); process.on('SIGINT', () => { logger.info("Shutting down due to SIGINT") server.forceShutdown() });