UNPKG

@cocalc/project

Version:
48 lines (42 loc) 1.58 kB
import daemonizeProcess from "daemonize-process"; import initProgram from "./init-program"; import initKucalc from "./init-kucalc"; import { cleanup as cleanupEnvironmentVariables } from "./project-setup"; const { init: initClient } = require("./client"); // import { Client } from "./client"; import initInfoJson from "./info-json"; import initServers from "./servers/init"; import initPublicPaths from "./public-paths"; import { getLogger } from "./logger"; import { init as initBugCounter } from "./bug-counter"; const winston = getLogger("project-main"); async function main() { const { HOME } = process.env; if (HOME == null) { throw Error("HOME env var must be set"); } process.chdir(HOME); if (process.env.DATA == null) { throw Error("DATA env var must be set"); } // TODO: some code, e.g., smc_pyutil's cc-jupyter script, assumes // that SMC is defined still. process.env.SMC = process.env.DATA; const options = initProgram(); // must run before anything else. if (options.daemon) { winston.info("daemonize the process"); daemonizeProcess(); } initBugCounter(); cleanupEnvironmentVariables(); initKucalc(); // must be after cleanupEnvironmentVariables, since this *adds* custom environment variables. winston.info("main init function"); winston.info("initialize INFO.json file"); await initInfoJson(); winston.info("create Client interface"); initClient(); winston.info("create all the servers..."); await initServers(); winston.info("create public paths watcher..."); initPublicPaths(); } main();