1 | colors = require 'colors'
|
2 | program = require 'commander'
|
3 | packageJSON = require './package.json'
|
4 |
|
5 | program
|
6 | .version packageJSON.version
|
7 | .command 'cluster', 'set the state state of a deployment'
|
8 | .command 'build', 'set the build state of a deployment'
|
9 |
|
10 | class Command
|
11 | constructor: ->
|
12 | process.on 'uncaughtException', @die
|
13 | {@runningCommand} = @parseOptions()
|
14 |
|
15 | parseOptions: =>
|
16 | program.parse process.argv
|
17 | { runningCommand } = program
|
18 | return { runningCommand }
|
19 |
|
20 | run: =>
|
21 | return if @runningCommand
|
22 | program.outputHelp()
|
23 | process.exit 0
|
24 |
|
25 | die: (error) =>
|
26 | return process.exit(0) unless error?
|
27 | console.error 'ERROR'
|
28 | console.error error.stack
|
29 | process.exit 1
|
30 |
|
31 | module.exports = Command
|