UNPKG

trifid

Version:

Trifid - Lightweight Linked Data Server and Proxy

47 lines (46 loc) 1.63 kB
#!/usr/bin/env node import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; import { Command } from 'commander'; import trifid from 'trifid-core'; const program = new Command(); const currentDir = dirname(fileURLToPath(import.meta.url)); const sparqlConfigPath = join(currentDir, 'instances', 'docker-sparql', 'config.yaml'); const defaultConfigurationFile = process.env.TRIFID_CONFIG || sparqlConfigPath; program .option('-c, --config <path>', 'configuration file', defaultConfigurationFile) .option('-p, --port <port>', 'listener port', parseInt) .option('--sparql-endpoint-url <url>', 'SPARQL endpoint URL') .option('--dataset-base-url <url>', 'the base URL of the dataset to enable rewriting') .parse(process.argv); const opts = program.opts(); const configFile = (opts.config && !opts.config.startsWith('/')) ? join(process.cwd(), opts.config) : opts.config; // create a minimal configuration that extends the specified one const globals = {}; const listener = {}; // add optional arguments to the configuration if (opts.port) { listener.port = opts.port; } if (opts.sparqlEndpointUrl) { globals.sparqlEndpoint = { url: opts.sparqlEndpointUrl, }; process.env.SPARQL_ENDPOINT_URL = opts.sparqlEndpointUrl; } if (opts.datasetBaseUrl) { globals.datasetBaseUrl = opts.datasetBaseUrl; process.env.DATASET_BASE_URL = opts.datasetBaseUrl; } const config = { extends: [configFile], globals, server: { listener, }, }; // load the configuration and start the server const instance = await trifid(config); instance.start();