davetron5000-gliffy 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|