src/utils/cli.js
/* eslint-disable no-console */
const program = require('commander');
const path = require('path');
const packageJSON = require('../../package.json');
program
.version(packageJSON.version)
.description(packageJSON.description)
.option('-i, --icon [optional]', 'optional icon file path (default: ./resources/icon)')
.option('-s, --splash [optional]', 'optional splash file path (default: ./resources/splash)')
.option(
'-p, --platforms [optional]',
'optional platform token comma separated list [android,ios,windows,blackberry10,pwa] (default: all platforms processed)',
(platformList) => platformList.split(','),
)
.option('-o, --outputDir [optional]', 'optional output directory (default: ./resources/)')
.option('-I, --makeIcon [optional]', 'option to process icon files only')
.option('-S, --makeSplash [optional]', 'option to process splash files only')
.option(
'--configPath [optional]',
'option to change the default config path (default: ./platforms)',
)
.option('-d, --debug', 'output extra debugging')
.parse(process.argv);
if (program.debug) console.debug(program.opts());
// app settings and default values
const cliParams = {
iconFile: program.icon || path.join('.', 'resources', 'icon'),
splashFile: program.splash || path.join('.', 'resources', 'splash'),
platforms: program.platforms || undefined,
outputDirectory: program.outputDir || path.join('.', 'resources'),
makeIcon: !!(program.makeIcon || (!program.makeIcon && !program.makeSplash)),
makeSplash: !!(program.makeSplash || (!program.makeIcon && !program.makeSplash)),
configPath: program.configPath || undefined,
};
exports.cliParams = cliParams;