mirror of
https://github.com/rastapasta/mapscii.git
synced 2024-11-21 23:53:08 +01:00
34d628d1d1
* Add preliminary support for parsing of command line options * Remove redundant options for width and height * Add parser for command line arguments. Type validation outstanding. * Update TODO list * Use config for argv's default values, simplify argument management Co-authored-by: LH <@>
88 lines
2.0 KiB
JavaScript
88 lines
2.0 KiB
JavaScript
/*#
|
|
MapSCII - Terminal Map Viewer
|
|
by Michael Strassburger <codepoet@cpan.org>
|
|
Discover the planet in your console!
|
|
|
|
This scripts boots up the application.
|
|
|
|
TODO: params parsing and so on
|
|
#*/
|
|
'use strict';
|
|
const config = require('./src/config');
|
|
const Mapscii = require('./src/Mapscii');
|
|
const argv = require('yargs')
|
|
.option('latitude', {
|
|
alias: 'lat',
|
|
description: 'Latitude of initial centre',
|
|
default: config.initialLat,
|
|
type: 'number',
|
|
})
|
|
.option('longitude', {
|
|
alias: 'lon',
|
|
description: 'Longitude of initial centre',
|
|
default: config.initialLon,
|
|
type: 'number',
|
|
})
|
|
.option('zoom', {
|
|
alias: 'z',
|
|
description: 'Initial zoom',
|
|
default: config.initialZoom,
|
|
type: 'number',
|
|
})
|
|
.option('width', {
|
|
alias: 'w',
|
|
description: 'Fixed width of rendering in dot units',
|
|
type: 'number',
|
|
})
|
|
.option('height', {
|
|
alias: 'h',
|
|
description: 'Fixed height of rendering in dot units',
|
|
type: 'number',
|
|
})
|
|
.option('braille', {
|
|
alias: 'b',
|
|
description: 'Activate braille rendering',
|
|
default: config.useBraille,
|
|
type: 'boolean',
|
|
})
|
|
.option('headless', {
|
|
alias: 'H',
|
|
description: 'Activate headless mode',
|
|
default: config.headless,
|
|
type: 'boolean',
|
|
})
|
|
.option('tile_source', {
|
|
alias: 'tileSource',
|
|
description: 'URL or path to osm2vectortiles source',
|
|
default: config.source,
|
|
type: 'string',
|
|
})
|
|
.option('style_file', {
|
|
alias: 'style',
|
|
description: 'path to json style file',
|
|
default: config.styleFile,
|
|
type: 'string',
|
|
})
|
|
.strict()
|
|
.argv;
|
|
|
|
const options = {
|
|
initialLat: argv.latitude,
|
|
initialLon: argv.longitude,
|
|
initialZoom: argv.zoom,
|
|
size: {
|
|
width: argv.width,
|
|
height: argv.height
|
|
},
|
|
useBraille: argv.braille,
|
|
headless: argv.headless,
|
|
source: argv.tile_source,
|
|
styleFile: argv.style_file,
|
|
}
|
|
|
|
const mapscii = new Mapscii(options);
|
|
mapscii.init().catch((err) => {
|
|
console.error('Failed to start MapSCII.');
|
|
console.error(err);
|
|
});
|