update commander

This commit is contained in:
acalcutt 2022-09-14 21:28:32 -04:00
parent 082243bda9
commit 2362137667
2 changed files with 63 additions and 61 deletions

View file

@ -28,7 +28,7 @@
"chokidar": "3.3.1", "chokidar": "3.3.1",
"clone": "2.1.2", "clone": "2.1.2",
"color": "3.1.2", "color": "3.1.2",
"commander": "4.1.1", "commander": "9.4.0",
"cors": "2.8.5", "cors": "2.8.5",
"esm": "3.2.25", "esm": "3.2.25",
"express": "4.17.1", "express": "4.17.1",

View file

@ -17,76 +17,78 @@ if (args.length >= 3 && args[2][0] !== '-') {
args.splice(2, 0, '--mbtiles'); args.splice(2, 0, '--mbtiles');
} }
const opts = require('commander') const { program } = require('commander');
program
.description('tileserver-gl startup options') .description('tileserver-gl startup options')
.usage('tileserver-gl [mbtiles] [options]') .usage('tileserver-gl [mbtiles] [options]')
.option( .option(
'--mbtiles <file>', '--mbtiles <file>',
'MBTiles file (uses demo configuration);\n' + 'MBTiles file (uses demo configuration);\n' +
'\t ignored if the configuration file is also specified' '\t ignored if the configuration file is also specified',
) )
.option( .option(
'-c, --config <file>', '-c, --config <file>',
'Configuration file [config.json]', 'Configuration file [config.json]',
'config.json' 'config.json',
) )
.option( .option(
'-b, --bind <address>', '-b, --bind <address>',
'Bind address' 'Bind address',
) )
.option( .option(
'-p, --port <port>', '-p, --port <port>',
'Port [8080]', 'Port [8080]',
8080, 8080,
parseInt parseInt,
) )
.option( .option(
'-C|--no-cors', '-C|--no-cors',
'Disable Cross-origin resource sharing headers' 'Disable Cross-origin resource sharing headers',
) )
.option( .option(
'-u|--public_url <url>', '-u|--public_url <url>',
'Enable exposing the server on subpaths, not necessarily the root of the domain' 'Enable exposing the server on subpaths, not necessarily the root of the domain',
) )
.option( .option(
'-V, --verbose', '-V, --verbose',
'More verbose output' 'More verbose output',
) )
.option( .option(
'-s, --silent', '-s, --silent',
'Less verbose output' 'Less verbose output',
) )
.option( .option(
'-l|--log_file <file>', '-l|--log_file <file>',
'output log file (defaults to standard out)' 'output log file (defaults to standard out)',
) )
.option( .option(
'-f|--log_format <format>', '-f|--log_format <format>',
'define the log format: https://github.com/expressjs/morgan#morganformat-options' 'define the log format: https://github.com/expressjs/morgan#morganformat-options',
) )
.version( .version(
packageJson.version, packageJson.version,
'-v, --version' '-v, --version',
) );
.parse(args); program.parse(process.argv);
const options = program.opts();
console.log(`Starting ${packageJson.name} v${packageJson.version}`); console.log(`Starting ${packageJson.name} v${packageJson.version}`);
const startServer = (configPath, config) => { const startServer = (configPath, config) => {
let publicUrl = opts.public_url; let publicUrl = options.public_url;
if (publicUrl && publicUrl.lastIndexOf('/') !== publicUrl.length - 1) { if (publicUrl && publicUrl.lastIndexOf('/') !== publicUrl.length - 1) {
publicUrl += '/'; publicUrl += '/';
} }
return require('./server')({ return require('./server')({
configPath: configPath, configPath: configPath,
config: config, config: config,
bind: opts.bind, bind: options.bind,
port: opts.port, port: options.port,
cors: opts.cors, cors: options.cors,
verbose: opts.verbose, verbose: options.verbose,
silent: opts.silent, silent: options.silent,
logFile: opts.log_file, logFile: options.log_file,
logFormat: opts.log_format, logFormat: options.log_format,
publicUrl: publicUrl publicUrl: publicUrl
}); });
}; };