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