mirror of
https://github.com/shimataro/ssh-key-action.git
synced 2025-06-19 22:52:10 +10:00
77 lines
4.1 KiB
JavaScript
Executable file
77 lines
4.1 KiB
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
'use strict';
|
|
|
|
const program = require('commander');
|
|
const updateNotifier = require('update-notifier');
|
|
const cint = require('cint');
|
|
const _ = require('lodash');
|
|
const rcLoader = require('rc-config-loader');
|
|
const ncu = require('../lib/npm-check-updates');
|
|
const pkg = require('../package.json');
|
|
|
|
// check if a new version of ncu is available and print an update notification
|
|
const notifier = updateNotifier({pkg});
|
|
if (notifier.update && notifier.update.latest !== pkg.version) {
|
|
notifier.notify({defer: false});
|
|
}
|
|
|
|
program
|
|
.description('[filter] is a list or regex of package names to check (all others will be ignored).')
|
|
.usage('[options] [filter]')
|
|
.option('--dep <dep>', 'check only a specific section(s) of dependencies: prod|dev|peer|optional|bundle (comma-delimited)')
|
|
.option('-e, --error-level <n>', 'set the error-level. 1: exits with error code 0 if no errors occur. 2: exits with error code 0 if no packages need updating (useful for continuous integration). Default is 1.', cint.partialAt(parseInt, 1, 10), 1)
|
|
.option('-f, --filter <matches>', 'include only package names matching the given string, comma-or-space-delimited list, or /regex/')
|
|
.option('-g, --global', 'check global packages instead of in the current project')
|
|
// program.json is set to true in programInit if any options that begin with 'json' are true
|
|
.option('-i, --interactive', 'Enable interactive prompts for each dependency')
|
|
.option('-j, --jsonAll', 'output new package file instead of human-readable message')
|
|
.option('--jsonUpgraded', 'output upgraded dependencies in json')
|
|
.option('-l, --loglevel <n>', 'what level of logs to report: silent, error, minimal, warn, info, verbose, silly (default: warn)', 'warn')
|
|
.option('-m, --minimal', 'do not upgrade newer versions that are already satisfied by the version range according to semver')
|
|
.option('-n, --newest', 'find the newest versions available instead of the latest stable versions')
|
|
.option('-p, --packageManager <name>', 'npm (default) or bower', 'npm')
|
|
.option('--packageData', 'include stringified package file (use stdin instead)')
|
|
.option('--packageFile <filename>', 'package file location (default: ./package.json)')
|
|
.option('--packageFileDir', 'use same directory as packageFile to compare against installed modules. See #201.')
|
|
.option('--pre <n>', 'Include -alpha, -beta, -rc. Default: 0. Default with --newest and --greatest: 1')
|
|
.option('-r, --registry <url>', 'specify third-party npm registry')
|
|
.option('--configFilePath <path>', 'rc config file path (default: ./)')
|
|
.option('--configFileName <path>', 'rc config file name (default: .ncurc.{json,yml,js})')
|
|
.option('-s, --silent', "don't output anything (--loglevel silent)")
|
|
.option('-t, --greatest', 'find the highest versions available instead of the latest stable versions')
|
|
.option('--timeout <ms>', 'a global timeout in ms')
|
|
.option('-u, --upgrade', 'overwrite package file')
|
|
.option('-x, --reject <matches>', 'exclude packages matching the given string, comma-or-space-delimited list, or /regex/')
|
|
.option('--semverLevel <level>', 'find the highest version within "major" or "minor"')
|
|
.option('--removeRange', 'remove version ranges from the final package version')
|
|
.option('-v, --version', pkg.version, () => {
|
|
console.log(pkg.version);
|
|
process.exit(0);
|
|
})
|
|
.option('-V', '', () => {
|
|
console.log(pkg.version);
|
|
process.exit(0);
|
|
});
|
|
|
|
program.parse(process.argv);
|
|
|
|
const rcFile = rcLoader('ncurc', {
|
|
configFileName: program.configFileName || '.ncurc',
|
|
defaultExtension: ['.json', '.yml', '.js'],
|
|
cwd: program.configFilePath || undefined
|
|
});
|
|
|
|
const rcArguments = rcFile && rcFile.config ?
|
|
_.flatten(_.map(rcFile.config, (value, name) =>
|
|
value === true ? [`--${name}`] : [`--${name}`, value]
|
|
)) : [];
|
|
|
|
const combinedArguments = process.argv.slice(0,2).concat(rcArguments).concat(process.argv.slice(2));
|
|
|
|
program.parse(combinedArguments);
|
|
|
|
program.cli = true;
|
|
program.filter = program.args.join(' ') || program.filter;
|
|
|
|
ncu.run(program);
|