1 | var optimist = require('optimist');
|
2 | var pkg = require('../package.json');
|
3 |
|
4 | var info = pkg.name + ' - ' + pkg.description + '\n' +
|
5 | ' version: ' + pkg.version + '\n' +
|
6 | ' author: ' + JSON.stringify(pkg.author);
|
7 |
|
8 | var program = optimist
|
9 | .options('revert', {
|
10 | boolean: true,
|
11 | description: 'install original module versions listed in package.json',
|
12 | default: false
|
13 | })
|
14 | .options('available', {
|
15 | boolean: true,
|
16 | alias: 'a',
|
17 | description: 'only query available later versions, do not test them',
|
18 | default: false
|
19 | })
|
20 | .options('module', {
|
21 | string: true,
|
22 | alias: 'm',
|
23 | description: 'checks specific module, can include version name@version',
|
24 | default: null
|
25 | })
|
26 | .option('latest', {
|
27 | boolean: true,
|
28 | alias: 'l',
|
29 | description: 'only check latest available update',
|
30 | default: true
|
31 | })
|
32 | .option('color', {
|
33 | boolean: true,
|
34 | alias: 'c',
|
35 | description: 'color terminal output (if available)',
|
36 | default: true
|
37 | })
|
38 | .option('version', {
|
39 | boolean: true,
|
40 | alias: 'v',
|
41 | description: 'show version and exit',
|
42 | default: false
|
43 | })
|
44 | .option('test', {
|
45 | string: true,
|
46 | alias: 't',
|
47 | description: 'custom test command to run instead of npm test'
|
48 | })
|
49 | .option('skip', {
|
50 | boolean: true,
|
51 | description: 'skip running tests first',
|
52 | default: false
|
53 | })
|
54 | .option('all', {
|
55 | boolean: true,
|
56 | default: false,
|
57 | description: 'install all modules at once before testing'
|
58 | })
|
59 | .option('keep', {
|
60 | boolean: true,
|
61 | default: false,
|
62 | alias: 'k',
|
63 | description: 'keep tested version if it is working'
|
64 | })
|
65 | .option('allow', {
|
66 | string: true,
|
67 | default: 'major',
|
68 | description: 'allow major / minor / patch updates'
|
69 | })
|
70 | .options('type', {
|
71 | string: true,
|
72 | default: 'all',
|
73 | description: 'check dependencies of type (all, prod, dev, peer)'
|
74 | })
|
75 | .options('tldr', {
|
76 | boolean: true,
|
77 | default: false,
|
78 | description: 'only print VERY important log messages'
|
79 | })
|
80 | .options('changed-log', {
|
81 | boolean: true,
|
82 | default: true,
|
83 | alias: 'L',
|
84 | description: 'print commit changes between working versions'
|
85 | })
|
86 | .usage(info)
|
87 | .argv;
|
88 |
|
89 | if (program.version) {
|
90 | console.log(info);
|
91 | process.exit(0);
|
92 | }
|
93 |
|
94 | if (program.help || program.h) {
|
95 | optimist.showHelp();
|
96 | process.exit(0);
|
97 | }
|
98 |
|
99 | module.exports = program;
|