UNPKG

1.67 kBJavaScriptView Raw
1#!/usr/bin/env node
2'use strict'
3require('coffeescript').register()
4var fs = require('fs')
5var Bumped = require('./../lib/Bumped')
6var updateNotifier = require('update-notifier')
7var partial = require('lodash.partial')
8var cli = require('meow')({
9 pkg: require('../package.json'),
10 help: fs.readFileSync(__dirname + '/help.txt', 'utf8')
11})
12
13updateNotifier({ pkg: cli.pkg }).notify()
14if (cli.input.length === 0) cli.showHelp()
15
16var bumped = new Bumped()
17var command = cli.input.shift()
18
19var exit = function (err) {
20 if (!err) return process.exit()
21 if (!Array.isArray(err)) err = [err]
22 var code = err[err.length - 1].code || 1
23 return process.exit(code || 1)
24}
25
26var commands = {
27 init: partial(bumped.init, exit),
28 version: partial(bumped.semver.version, exit),
29
30 release: partial(
31 bumped.semver.release,
32 {
33 version: cli.input[0],
34 prefix: cli.input[1]
35 },
36 exit
37 ),
38
39 add: partial(
40 bumped.config.add,
41 {
42 detect: true,
43 save: true,
44 file: cli.input[0]
45 },
46 exit
47 ),
48
49 remove: partial(
50 bumped.config.remove,
51 {
52 save: true,
53 file: cli.input[0]
54 },
55 exit
56 ),
57
58 set: (function () {
59 var property = cli.input[0]
60 cli.input.shift()
61 var value = cli.input.join(' ')
62 return partial(
63 bumped.config.set,
64 {
65 property: property,
66 value: value
67 },
68 exit
69 )
70 })()
71}
72
73var existCommand = Object.keys(commands).indexOf(command) > -1
74
75if (!existCommand) return cli.showHelp()
76
77process.stdout.write('\n')
78
79if (command === 'init') return commands[command]()
80
81return bumped.load(function (err) {
82 if (err) throw err
83 return commands[command]()
84})