davetron5000-gliffy 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/gliffy +20 -1
- data/lib/gliffy/cli.rb +0 -132
- data/lib/gliffy/commands.rb +6 -0
- data/lib/gliffy/commands/delete.rb +10 -0
- data/lib/gliffy/commands/edit.rb +19 -0
- data/lib/gliffy/commands/get.rb +46 -0
- data/lib/gliffy/commands/list.rb +27 -0
- data/lib/gliffy/commands/new.rb +25 -0
- data/lib/gliffy/commands/url.rb +21 -0
- metadata +19 -4
- data/lib/gliffy/commands/commands.rb +0 -152
data/bin/gliffy
CHANGED
@@ -4,5 +4,24 @@ $: << File.expand_path(File.dirname(__FILE__) + '/../lib')
|
|
4
4
|
$: << File.expand_path(File.dirname(__FILE__) + '/../ext')
|
5
5
|
|
6
6
|
require 'gliffy/cli'
|
7
|
+
require 'rubygems'
|
8
|
+
require 'gli'
|
9
|
+
include GLI
|
7
10
|
|
8
|
-
|
11
|
+
pre do |global_options,command,options,args|
|
12
|
+
if !Gliffy::CLIConfig.instance.load
|
13
|
+
raise "Problem loading config"
|
14
|
+
end
|
15
|
+
if command && command.name != :help
|
16
|
+
previous_token = Gliffy::CLIConfig.instance.config[:current_token]
|
17
|
+
Gliffy::Config.config.log_level = Logger::DEBUG if global_options[:v]
|
18
|
+
$gliffy = Gliffy::Handle.new(Gliffy::CLIConfig.instance.config[:username],previous_token)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'be more verbose'
|
23
|
+
switch :v
|
24
|
+
|
25
|
+
require 'gliffy/commands'
|
26
|
+
|
27
|
+
GLI.run(ARGV)
|
data/lib/gliffy/cli.rb
CHANGED
@@ -7,78 +7,6 @@ require 'logger'
|
|
7
7
|
module Gliffy
|
8
8
|
extend self
|
9
9
|
|
10
|
-
# A command line option to the gliffy command line client
|
11
|
-
class Command
|
12
|
-
|
13
|
-
# Global flags
|
14
|
-
GLOBAL_FLAGS = {
|
15
|
-
'-v' => 'be more verbose (overrides config)',
|
16
|
-
}
|
17
|
-
|
18
|
-
# Global access to all configured commands
|
19
|
-
def self.commands
|
20
|
-
@@commands ||= {}
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.aliases
|
24
|
-
@@aliases ||= {}
|
25
|
-
end
|
26
|
-
|
27
|
-
# The name of the command
|
28
|
-
attr_reader :name
|
29
|
-
# a short description
|
30
|
-
attr_reader :description
|
31
|
-
# a usage statement
|
32
|
-
attr_reader :usage
|
33
|
-
|
34
|
-
# Create a new command
|
35
|
-
#
|
36
|
-
# [+name+] the name of the command (should be short, no spaces)
|
37
|
-
# [+description+] short description of the command
|
38
|
-
# [+offline+] true if this command doesn't require a connection to Gliffy
|
39
|
-
# [+usage+] usage statement
|
40
|
-
# [+block+] A block that represents the command itself. This block will take the gliffy handle and the args array as arguments *or* just the arguments if it is an "offline"
|
41
|
-
# command
|
42
|
-
def initialize(name,description,offline,usage,block)
|
43
|
-
@name = name
|
44
|
-
@description = description
|
45
|
-
@block = block
|
46
|
-
@offline = offline
|
47
|
-
@usage = usage ? usage : ""
|
48
|
-
end
|
49
|
-
|
50
|
-
# Runs the command with the given arguments
|
51
|
-
def run(args)
|
52
|
-
if (@offline)
|
53
|
-
@block.call(args)
|
54
|
-
else
|
55
|
-
previous_token = CLIConfig.instance.config[:current_token]
|
56
|
-
handle = Gliffy::Handle.new(CLIConfig.instance.config[:username],previous_token)
|
57
|
-
@block.call(handle,args)
|
58
|
-
CLIConfig.instance.config[:current_token] = handle.current_token
|
59
|
-
CLIConfig.instance.save
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
# Executes the command line that was given
|
64
|
-
def self.execute(argv)
|
65
|
-
globals = Hash.new
|
66
|
-
command = argv.shift
|
67
|
-
while !command.nil? && (command =~ /^-/) && !argv.empty?
|
68
|
-
globals[command] = true
|
69
|
-
command = argv.shift
|
70
|
-
end
|
71
|
-
Gliffy::Config.config.log_level = Logger::DEBUG if globals['-v']
|
72
|
-
cmd = Gliffy::Command.commands[command.to_sym]
|
73
|
-
if cmd
|
74
|
-
cmd.run argv
|
75
|
-
else
|
76
|
-
puts "Unknown command #{command}"
|
77
|
-
Gliffy::Command.commands[:help].run []
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
10
|
# Represents the configuration for the command line client.
|
83
11
|
# This is a singleton
|
84
12
|
class CLIConfig
|
@@ -192,69 +120,9 @@ module Gliffy
|
|
192
120
|
|
193
121
|
end
|
194
122
|
|
195
|
-
# For defining commands, this specifies the description of the next command defined
|
196
|
-
def desc(description)
|
197
|
-
@next_desc = description
|
198
|
-
end
|
199
|
-
|
200
|
-
# For defining commands, this specifies if the next defined command is "offline"
|
201
|
-
def offline(bool)
|
202
|
-
@next_offline = bool
|
203
|
-
end
|
204
|
-
|
205
|
-
# For defining commands, specifies the usage statement of the next command
|
206
|
-
def usage(usage='')
|
207
|
-
@next_usage = usage
|
208
|
-
end
|
209
|
-
|
210
|
-
# defines a command. The only options supported is ":aliases" which is an array of aliases
|
211
|
-
# for the command
|
212
|
-
def command(name,options={},&block)
|
213
|
-
Command.commands[name] = Command.new(name,@next_desc,@next_offline,@next_usage,block)
|
214
|
-
if options[:aliases]
|
215
|
-
options[:aliases].each() do |a|
|
216
|
-
Command.commands[a] = Command.commands[name]
|
217
|
-
Command.aliases[a] = true
|
218
|
-
end
|
219
|
-
end
|
220
|
-
@next_usage = nil
|
221
|
-
@next_offline = false
|
222
|
-
@next_desc = nil
|
223
|
-
end
|
224
|
-
|
225
|
-
def parse_options(args)
|
226
|
-
options = Hash.new
|
227
|
-
return options if !args
|
228
|
-
i = 0
|
229
|
-
while i < args.length
|
230
|
-
inc = 2
|
231
|
-
if args[i] =~ /^-/
|
232
|
-
arg = args[i].gsub(/^-/,'')
|
233
|
-
if !args[i+1] || (args[i+1] =~ /^-/)
|
234
|
-
inc = 1
|
235
|
-
options[arg] = true
|
236
|
-
else
|
237
|
-
options[arg] = args[i+1]
|
238
|
-
end
|
239
|
-
else
|
240
|
-
break
|
241
|
-
end
|
242
|
-
i += inc
|
243
|
-
end
|
244
|
-
i.times { args.shift }
|
245
|
-
options
|
246
|
-
end
|
247
|
-
|
248
123
|
def format_date(date)
|
249
124
|
date.strftime('%m/%d/%y %H:%M')
|
250
125
|
end
|
251
126
|
|
252
127
|
end
|
253
128
|
|
254
|
-
include Gliffy
|
255
|
-
require 'gliffy/commands/commands'
|
256
|
-
if !CLIConfig.instance.load
|
257
|
-
exit -1
|
258
|
-
end
|
259
|
-
|
260
|
-
|
@@ -0,0 +1,10 @@
|
|
1
|
+
desc 'Delete a diagram'
|
2
|
+
arg_name 'diagram_id [diagram_id]*'
|
3
|
+
command [:delete,:del,:rm] do |c|
|
4
|
+
c.action do |global_options,options,args|
|
5
|
+
raise UnknownArgumentException("diagram id is required") if args.length == 0;
|
6
|
+
args.each do |diagram_id|
|
7
|
+
$gliffy.delete_diagram(diagram_id)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
desc 'Edit a diagram'
|
2
|
+
arg_name 'diagram_id'
|
3
|
+
command :edit do |c|
|
4
|
+
|
5
|
+
c.action do |global_options,options,args|
|
6
|
+
|
7
|
+
raise(UnknownArgumentException,'You must specify one diagram id') if args.length != 1
|
8
|
+
|
9
|
+
return_link = $gliffy.get_diagram_as_url(args[0])
|
10
|
+
link = $gliffy.get_edit_diagram_link(args[0],return_link,"Done")
|
11
|
+
if CLIConfig.instance.config[:open_url]
|
12
|
+
system(sprintf(CLIConfig.instance.config[:open_url],link.full_url))
|
13
|
+
else
|
14
|
+
puts "Nothing configured for #{:open_url.to_s} to open the url"
|
15
|
+
puts link.full_url
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
desc 'Download a diagram as an image to a file'
|
2
|
+
arg_name 'diagram_id [diagram_id]*'
|
3
|
+
command :get do |c|
|
4
|
+
|
5
|
+
c.desc 'Get a specific version number'
|
6
|
+
c.arg_name 'version_number'
|
7
|
+
c.default_value nil
|
8
|
+
c.flag [:v,:version]
|
9
|
+
|
10
|
+
c.desc 'Specify the filename'
|
11
|
+
c.arg_name 'filename'
|
12
|
+
c.default_value nil
|
13
|
+
c.flag [:f,:filename]
|
14
|
+
|
15
|
+
c.desc 'Specify the image type (one of jpeg, jpg, png, svg, xml)'
|
16
|
+
c.arg_name 'type'
|
17
|
+
c.default_value 'jpg'
|
18
|
+
c.flag [:t,:type,:"image-type"]
|
19
|
+
|
20
|
+
c.action do |global_options,options,args|
|
21
|
+
|
22
|
+
raise(UnknownArgumentException,'You must specify a diagram id') if args.length == 0
|
23
|
+
raise(MissingArgumentException,'You may not specify a filename when getting multiple diagrams') if args.length > 1 and options[:f]
|
24
|
+
args.each do |diagram_id|
|
25
|
+
|
26
|
+
version_number = options[:v]
|
27
|
+
filename = options[:f]
|
28
|
+
type = options[:t].to_sym
|
29
|
+
if !filename
|
30
|
+
dir = options['d'] || '.'
|
31
|
+
metadata = $gliffy.get_diagram_metadata(diagram_id)
|
32
|
+
filename = metadata.name.gsub(/[\s\/\-\+\$]/,'_')
|
33
|
+
if version_number
|
34
|
+
filename = "#{dir}/#{filename}_v#{version_number}.#{type.to_s}"
|
35
|
+
else
|
36
|
+
filename = "#{dir}/#{filename}.#{type.to_s}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
get_options = { :mime_type => type, :file => filename }
|
41
|
+
get_options[:version] = version_number if version_number
|
42
|
+
$gliffy.get_diagram_as_image(diagram_id,get_options)
|
43
|
+
puts filename
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
desc 'List all diagrams in the account'
|
2
|
+
command [:list,:ls] do |c|
|
3
|
+
|
4
|
+
c.desc 'List long form'
|
5
|
+
c.switch :l
|
6
|
+
|
7
|
+
c.action do |global_options,options,args|
|
8
|
+
diagrams = $gliffy.get_diagrams
|
9
|
+
if options[:l]
|
10
|
+
max = diagrams.inject(0) { |max,diagram| diagram.name.length > max ? diagram.name.length : max }
|
11
|
+
diagrams.sort.each do |diagram|
|
12
|
+
printf "%8d %s %-#{max}s %-3d %s %s %s\n",
|
13
|
+
diagram.id,
|
14
|
+
diagram.is_public? ? "P" : "-",
|
15
|
+
diagram.name,
|
16
|
+
diagram.num_versions,
|
17
|
+
format_date(diagram.create_date),
|
18
|
+
format_date(diagram.mod_date),
|
19
|
+
diagram.owner_username
|
20
|
+
end
|
21
|
+
else
|
22
|
+
printf_string = "%d %s\n"
|
23
|
+
diagrams.sort.each { |diagram| printf printf_string,diagram.id,diagram.name }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
desc 'Create a new diagram'
|
2
|
+
arg_name 'new_diagram_name'
|
3
|
+
command [:new,:create] do |c|
|
4
|
+
c.desc 'use the given diagram_id as a template'
|
5
|
+
c.default_value nil
|
6
|
+
c.flag [:t,:template]
|
7
|
+
|
8
|
+
c.desc 'don\'t edit the new diagram'
|
9
|
+
c.switch [:n,:"no-edit"]
|
10
|
+
|
11
|
+
c.action do |global_options,options,args|
|
12
|
+
|
13
|
+
raise(UnknownArgumentException,'You must specify the diagram name') if args.length != 1
|
14
|
+
|
15
|
+
template_id = options[:t]
|
16
|
+
|
17
|
+
diagram = $gliffy.create_diagram(args[0],template_id)
|
18
|
+
if options[:n]
|
19
|
+
puts "Diagram #{diagram.name} created with id #{diagram.id}"
|
20
|
+
else
|
21
|
+
GLI.run(['edit',diagram.id.to_s])
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
desc 'Get the URL for a diagram as an image image'
|
2
|
+
arg_name 'diagram_id'
|
3
|
+
command :url do |c|
|
4
|
+
c.desc 'Open URL with configured :open_url command'
|
5
|
+
c.switch [:o,:open]
|
6
|
+
c.action do |global_options,options,args|
|
7
|
+
raise UnknownArgumentException,"diagram id is required" if args.length == 0
|
8
|
+
raise UnknownArgumentException,"Only one diagram id is supported" if args.length > 1
|
9
|
+
url = $gliffy.get_diagram_as_url(args[0])
|
10
|
+
if options[:o]
|
11
|
+
if CLIConfig.instance.config[:open_image]
|
12
|
+
system(sprintf(CLIConfig.instance.config[:open_image],url))
|
13
|
+
else
|
14
|
+
puts "Nothing configured for #{:open_image.to_s} to open the image"
|
15
|
+
puts url
|
16
|
+
end
|
17
|
+
else
|
18
|
+
puts url
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: davetron5000-gliffy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Copeland
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-02-03 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -21,6 +21,15 @@ dependencies:
|
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 0.5.1
|
23
23
|
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: davetron5000-gli
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 0.1.4
|
32
|
+
version:
|
24
33
|
description:
|
25
34
|
email: davidcopeland@naildrivin5.com
|
26
35
|
executables:
|
@@ -31,9 +40,16 @@ extra_rdoc_files:
|
|
31
40
|
- README.rdoc
|
32
41
|
files:
|
33
42
|
- ext/array_has_response.rb
|
43
|
+
- bin/gliffy
|
34
44
|
- lib/gliffy/account.rb
|
35
45
|
- lib/gliffy/cli.rb
|
36
|
-
- lib/gliffy/commands/
|
46
|
+
- lib/gliffy/commands/delete.rb
|
47
|
+
- lib/gliffy/commands/edit.rb
|
48
|
+
- lib/gliffy/commands/get.rb
|
49
|
+
- lib/gliffy/commands/list.rb
|
50
|
+
- lib/gliffy/commands/new.rb
|
51
|
+
- lib/gliffy/commands/url.rb
|
52
|
+
- lib/gliffy/commands.rb
|
37
53
|
- lib/gliffy/config.rb
|
38
54
|
- lib/gliffy/diagram.rb
|
39
55
|
- lib/gliffy/folder.rb
|
@@ -43,7 +59,6 @@ files:
|
|
43
59
|
- lib/gliffy/url.rb
|
44
60
|
- lib/gliffy/user.rb
|
45
61
|
- lib/gliffy.rb
|
46
|
-
- bin/gliffy
|
47
62
|
- README.rdoc
|
48
63
|
has_rdoc: true
|
49
64
|
homepage: http://davetron5000.github.com/gliffy
|
@@ -1,152 +0,0 @@
|
|
1
|
-
desc 'List all diagrams in the account'
|
2
|
-
usage <<eos
|
3
|
-
[-l]
|
4
|
-
|
5
|
-
-l - show all information
|
6
|
-
eos
|
7
|
-
command :list, :aliases => [:ls] do |gliffy,args|
|
8
|
-
diagrams = gliffy.get_diagrams
|
9
|
-
options = parse_options(args)
|
10
|
-
if options['l']
|
11
|
-
max = diagrams.inject(0) { |max,diagram| diagram.name.length > max ? diagram.name.length : max }
|
12
|
-
diagrams.sort.each do |diagram|
|
13
|
-
printf "%8d %s %-#{max}s %-3d %s %s %s\n",
|
14
|
-
diagram.id,
|
15
|
-
diagram.is_public? ? "P" : "-",
|
16
|
-
diagram.name,
|
17
|
-
diagram.num_versions,
|
18
|
-
format_date(diagram.create_date),
|
19
|
-
format_date(diagram.mod_date),
|
20
|
-
diagram.owner_username
|
21
|
-
end
|
22
|
-
else
|
23
|
-
printf_string = "%d %s\n"
|
24
|
-
diagrams.sort.each { |diagram| printf printf_string,diagram.id,diagram.name }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
desc 'Delete a diagram'
|
29
|
-
usage 'diagram_id'
|
30
|
-
command :delete, :aliases => [:del,:rm] do |gliffy,args|
|
31
|
-
gliffy.delete_diagram(args[0])
|
32
|
-
end
|
33
|
-
|
34
|
-
desc 'Get the URL for an image'
|
35
|
-
usage <<eos
|
36
|
-
[-o] diagram_id
|
37
|
-
|
38
|
-
-o - open diagram's URL with configured :open_url command
|
39
|
-
eos
|
40
|
-
command :url do |gliffy,args|
|
41
|
-
open = args[0] == '-o'
|
42
|
-
args.shift if open
|
43
|
-
url = gliffy.get_diagram_as_url(args[0])
|
44
|
-
if open
|
45
|
-
if CLIConfig.instance.config[:open_image]
|
46
|
-
system(sprintf(CLIConfig.instance.config[:open_image],url))
|
47
|
-
else
|
48
|
-
puts "Nothing configured for #{:open_image.to_s} to open the image"
|
49
|
-
puts url
|
50
|
-
end
|
51
|
-
else
|
52
|
-
puts url
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
desc 'Download a diagram as an image to a file'
|
57
|
-
usage <<eos
|
58
|
-
[-v version_num] [-f filename] [-d download_dir] [-t image_type] diagram_id
|
59
|
-
|
60
|
-
image_type can be :jpeg, :jpg, :png, :svg, or :xml
|
61
|
-
if no filename specified, uses the diagram's name
|
62
|
-
if -d and -f are specified, -d is ignored
|
63
|
-
eos
|
64
|
-
command :get do |gliffy,args|
|
65
|
-
|
66
|
-
options = parse_options(args)
|
67
|
-
diagram_id = args.shift
|
68
|
-
|
69
|
-
version_number = options['v'].to_i if options['v']
|
70
|
-
filename = options['f'] if options['f']
|
71
|
-
type = options['t'].to_sym if options['t']
|
72
|
-
type = :jpg if !type
|
73
|
-
if !filename
|
74
|
-
dir = options['d'] || '.'
|
75
|
-
metadata = gliffy.get_diagram_metadata(diagram_id)
|
76
|
-
filename = metadata.name.gsub(/[\s\/\-\+\$]/,'_')
|
77
|
-
if version_number
|
78
|
-
filename = "#{dir}/#{filename}_v#{version_number}.#{type.to_s}"
|
79
|
-
else
|
80
|
-
filename = "#{dir}/#{filename}.#{type.to_s}"
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
get_options = { :mime_type => type, :file => filename }
|
85
|
-
get_options[:version] = version_number if version_number
|
86
|
-
gliffy.get_diagram_as_image(diagram_id,get_options)
|
87
|
-
puts filename
|
88
|
-
end
|
89
|
-
|
90
|
-
desc 'Edit a diagram'
|
91
|
-
usage 'diagram_id'
|
92
|
-
command :edit do |gliffy,args|
|
93
|
-
return_link = gliffy.get_diagram_as_url(args[0])
|
94
|
-
link = gliffy.get_edit_diagram_link(args[0],return_link,"Done")
|
95
|
-
if CLIConfig.instance.config[:open_url]
|
96
|
-
system(sprintf(CLIConfig.instance.config[:open_url],link.full_url))
|
97
|
-
else
|
98
|
-
puts "Nothing configured for #{:open_url.to_s} to open the url"
|
99
|
-
puts link.full_url
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
desc 'Create a new diagram'
|
104
|
-
usage <<eos
|
105
|
-
[-t template_id] diagram_name
|
106
|
-
|
107
|
-
-t specify the id of a diagram to server as the initial revision
|
108
|
-
eos
|
109
|
-
command :new do |gliffy,args|
|
110
|
-
options = parse_options(args)
|
111
|
-
name = args.shift
|
112
|
-
template_id = options['t']
|
113
|
-
|
114
|
-
diagram = gliffy.create_diagram(name,template_id)
|
115
|
-
Gliffy::Command.commands[:edit].run [diagram.id]
|
116
|
-
end
|
117
|
-
|
118
|
-
desc 'Show commands'
|
119
|
-
offline true
|
120
|
-
usage 'command'
|
121
|
-
command :help do |args|
|
122
|
-
if args[0]
|
123
|
-
command = Command.commands[args[0].to_sym]
|
124
|
-
if command
|
125
|
-
printf "%s - %s\n",args[0],command.description
|
126
|
-
printf "usage: %s %s\n",args[0],command.usage
|
127
|
-
else
|
128
|
-
puts "No such command #{args[0]}"
|
129
|
-
end
|
130
|
-
else
|
131
|
-
command_string = " %-6s %s %s\n"
|
132
|
-
puts 'usage: gliffy [global_options] command [command_options]'
|
133
|
-
puts 'global_options:'
|
134
|
-
Command::GLOBAL_FLAGS.keys.sort.each do |flag|
|
135
|
-
printf command_string,flag,Command::GLOBAL_FLAGS[flag],''
|
136
|
-
end
|
137
|
-
puts
|
138
|
-
puts 'command:'
|
139
|
-
command_names = Command.commands.keys.sort { |a,b| a.to_s <=> b.to_s }
|
140
|
-
command_names.each() do |name|
|
141
|
-
command = Command.commands[name]
|
142
|
-
if !Command.aliases[name]
|
143
|
-
aliases = Array.new
|
144
|
-
Command.aliases.keys.each() do |a|
|
145
|
-
aliases << a if Command.commands[a] == command
|
146
|
-
end
|
147
|
-
alias_string = '(also: ' + aliases.join(',') + ')' if aliases.length > 0
|
148
|
-
printf command_string,name.to_s, command.description,alias_string
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|