39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
|
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()
|
||
|
});
|