-
Notifications
You must be signed in to change notification settings - Fork 0
/
eoptimist.co
72 lines (55 loc) · 1.25 KB
/
eoptimist.co
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
fs = require 'fs'
require 'colors'
require 'js-yaml'
PARENT_PATH = (require 'path').dirname(process.mainModule.filename)
info = ''
try
PACKAGE_JSON = require (PARENT_PATH + "/package.json")
info := PACKAGE_JSON.name+" "+PACKAGE_JSON.version
catch e
console.log "Error retrieving package.json".red.bold
console.log e
options =
'version':
alias: 'info'
boolean: true
description: 'Display current version'
'usage':
alias: 'help'
boolean: true
description: 'Display help'
# get CLI.yaml
yaml_path = PARENT_PATH+'/CLI.yaml'
yaml =
usage: ''
options: {}
if fs.existsSync yaml_path
try
yaml = require yaml_path
catch e
console.log "Yaml: ".red.bold, e
if yaml
yaml.usage = "Usage: "+yaml.usage
options <<< yaml.options
yaml.options = undefined
module.exports = require 'optimist'
.wrap 80
.options options
.usage yaml.usage
argv = module.exports.argv
if argv.version
console.log info
else if argv.usage
extendedHelp = ->
help = module.exports.help()
if yaml and (e=yaml.examples)
help += "Examples:\n"
wrap = (require 'wordwrap')(2,80)
for k in e
example = wrap e[k]
help += "#example\n"
help
showExtendedHelp = !(fn)->
if not fn then fn = console.error;
fn extendedHelp!
showExtendedHelp!