feat: allow custom config to be passed

This commit is contained in:
Ruben Taelman 2020-08-28 09:25:04 +02:00 committed by Joachim Van Herwegen
parent f08e97b80c
commit 09707a9e6d

View File

@ -1,3 +1,4 @@
import * as Path from 'path';
import { ReadStream, WriteStream } from 'tty'; import { ReadStream, WriteStream } from 'tty';
import { Loader, LoaderProperties } from 'componentsjs'; import { Loader, LoaderProperties } from 'componentsjs';
import yargs from 'yargs'; import yargs from 'yargs';
@ -23,15 +24,21 @@ export const runCustom = function(
.usage('node ./bin/server.js [args]') .usage('node ./bin/server.js [args]')
.options({ .options({
port: { type: 'number', alias: 'p' }, port: { type: 'number', alias: 'p' },
config: { type: 'string', alias: 'c' },
}) })
.help(); .help();
new Promise<RuntimeConfig>(async(resolve): Promise<void> => { new Promise<RuntimeConfig>(async(resolve): Promise<void> => {
// Load provided or default config file
const configPath = argv.config ?
Path.join(process.cwd(), argv.config) :
`${__dirname}/../../config/config-default.json`;
// Setup from config file // Setup from config file
const loader = new Loader(properties); const loader = new Loader(properties);
await loader.registerAvailableModuleResources(); await loader.registerAvailableModuleResources();
const setup: Setup = await loader const setup: Setup = await loader
.instantiateFromUrl('urn:solid-server:my', `${__dirname}/../../config/config-default.json`); .instantiateFromUrl('urn:solid-server:my', configPath);
resolve(await setup.setup({ port: argv.port })); resolve(await setup.setup({ port: argv.port }));
}).then((runtimeConfig: RuntimeConfig): void => { }).then((runtimeConfig: RuntimeConfig): void => {
stdout.write(`Running at ${runtimeConfig.base}\n`); stdout.write(`Running at ${runtimeConfig.base}\n`);