ctioga2 0.0
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/COPYING +339 -0
- data/Changelog +6 -0
- data/bin/ctioga2 +26 -0
- data/lib/ctioga2/commands/arguments.rb +58 -0
- data/lib/ctioga2/commands/commands.rb +258 -0
- data/lib/ctioga2/commands/doc/doc.rb +118 -0
- data/lib/ctioga2/commands/doc/documentation-commands.rb +119 -0
- data/lib/ctioga2/commands/doc/help.rb +95 -0
- data/lib/ctioga2/commands/doc/html.rb +230 -0
- data/lib/ctioga2/commands/doc/introspection.rb +211 -0
- data/lib/ctioga2/commands/doc/man.rb +279 -0
- data/lib/ctioga2/commands/doc/markup.rb +359 -0
- data/lib/ctioga2/commands/general-commands.rb +119 -0
- data/lib/ctioga2/commands/general-types.rb +118 -0
- data/lib/ctioga2/commands/groups.rb +73 -0
- data/lib/ctioga2/commands/interpreter.rb +257 -0
- data/lib/ctioga2/commands/parsers/command-line.rb +187 -0
- data/lib/ctioga2/commands/parsers/file.rb +186 -0
- data/lib/ctioga2/commands/strings.rb +303 -0
- data/lib/ctioga2/commands/type.rb +100 -0
- data/lib/ctioga2/commands/variables.rb +101 -0
- data/lib/ctioga2/data/backends/backend.rb +260 -0
- data/lib/ctioga2/data/backends/backends.rb +39 -0
- data/lib/ctioga2/data/backends/backends/gnuplot.rb +140 -0
- data/lib/ctioga2/data/backends/backends/math.rb +121 -0
- data/lib/ctioga2/data/backends/backends/text.rb +335 -0
- data/lib/ctioga2/data/backends/description.rb +405 -0
- data/lib/ctioga2/data/backends/factory.rb +73 -0
- data/lib/ctioga2/data/backends/parameter.rb +109 -0
- data/lib/ctioga2/data/datacolumn.rb +245 -0
- data/lib/ctioga2/data/dataset.rb +233 -0
- data/lib/ctioga2/data/filters.rb +131 -0
- data/lib/ctioga2/data/merge.rb +43 -0
- data/lib/ctioga2/data/point.rb +72 -0
- data/lib/ctioga2/data/stack.rb +294 -0
- data/lib/ctioga2/graphics/coordinates.rb +73 -0
- data/lib/ctioga2/graphics/elements.rb +111 -0
- data/lib/ctioga2/graphics/elements/containers.rb +111 -0
- data/lib/ctioga2/graphics/elements/curve2d.rb +155 -0
- data/lib/ctioga2/graphics/elements/element.rb +90 -0
- data/lib/ctioga2/graphics/elements/primitive.rb +256 -0
- data/lib/ctioga2/graphics/elements/subplot.rb +140 -0
- data/lib/ctioga2/graphics/generator.rb +68 -0
- data/lib/ctioga2/graphics/legends.rb +108 -0
- data/lib/ctioga2/graphics/legends/area.rb +199 -0
- data/lib/ctioga2/graphics/legends/items.rb +183 -0
- data/lib/ctioga2/graphics/legends/provider.rb +58 -0
- data/lib/ctioga2/graphics/legends/storage.rb +65 -0
- data/lib/ctioga2/graphics/root.rb +209 -0
- data/lib/ctioga2/graphics/styles.rb +30 -0
- data/lib/ctioga2/graphics/styles/axes.rb +247 -0
- data/lib/ctioga2/graphics/styles/background.rb +122 -0
- data/lib/ctioga2/graphics/styles/base.rb +115 -0
- data/lib/ctioga2/graphics/styles/carrays.rb +53 -0
- data/lib/ctioga2/graphics/styles/curve.rb +101 -0
- data/lib/ctioga2/graphics/styles/drawable.rb +87 -0
- data/lib/ctioga2/graphics/styles/factory.rb +351 -0
- data/lib/ctioga2/graphics/styles/legend.rb +63 -0
- data/lib/ctioga2/graphics/styles/plot.rb +410 -0
- data/lib/ctioga2/graphics/styles/sets.rb +64 -0
- data/lib/ctioga2/graphics/styles/texts.rb +277 -0
- data/lib/ctioga2/graphics/subplot-commands.rb +141 -0
- data/lib/ctioga2/graphics/types.rb +188 -0
- data/lib/ctioga2/graphics/types/bijection.rb +79 -0
- data/lib/ctioga2/graphics/types/boundaries.rb +170 -0
- data/lib/ctioga2/graphics/types/boxes.rb +157 -0
- data/lib/ctioga2/graphics/types/dimensions.rb +157 -0
- data/lib/ctioga2/graphics/types/point.rb +247 -0
- data/lib/ctioga2/log.rb +97 -0
- data/lib/ctioga2/metabuilder/type.rb +316 -0
- data/lib/ctioga2/metabuilder/types.rb +39 -0
- data/lib/ctioga2/metabuilder/types/coordinates.rb +124 -0
- data/lib/ctioga2/metabuilder/types/dates.rb +43 -0
- data/lib/ctioga2/metabuilder/types/lists.rb +188 -0
- data/lib/ctioga2/metabuilder/types/numbers.rb +97 -0
- data/lib/ctioga2/metabuilder/types/strings.rb +93 -0
- data/lib/ctioga2/metabuilder/types/styles.rb +178 -0
- data/lib/ctioga2/plotmaker.rb +677 -0
- data/lib/ctioga2/postprocess.rb +115 -0
- data/lib/ctioga2/utils.rb +120 -0
- data/setup.rb +1586 -0
- metadata +144 -0
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
# markup.rb: simple markup system used wirhin the documentation.
|
|
2
|
+
# copyright (c) 2009 by Vincent Fourmond
|
|
3
|
+
|
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details (in the COPYING file).
|
|
13
|
+
|
|
14
|
+
require 'ctioga2/utils'
|
|
15
|
+
require 'ctioga2/log'
|
|
16
|
+
|
|
17
|
+
module CTioga2
|
|
18
|
+
|
|
19
|
+
Version::register_svn_info('$Revision: 84 $', '$Date: 2009-06-12 00:09:41 +0200 (Fri, 12 Jun 2009) $')
|
|
20
|
+
|
|
21
|
+
module Commands
|
|
22
|
+
|
|
23
|
+
module Documentation
|
|
24
|
+
|
|
25
|
+
# The documentation strings are written in a simple markup
|
|
26
|
+
# language.
|
|
27
|
+
class MarkedUpText
|
|
28
|
+
|
|
29
|
+
# Do we really need logging ?
|
|
30
|
+
include Log
|
|
31
|
+
|
|
32
|
+
# The base class for markup items.
|
|
33
|
+
class MarkupItem
|
|
34
|
+
# The documentation object
|
|
35
|
+
attr_accessor :doc
|
|
36
|
+
|
|
37
|
+
def initialize(doc)
|
|
38
|
+
@doc = doc
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def to_s
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def dump_string
|
|
45
|
+
return ""
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# A markup item representing plain text.
|
|
51
|
+
#
|
|
52
|
+
# TODO: in to_s a simple word-wrapping algorithm could be
|
|
53
|
+
# used.
|
|
54
|
+
class MarkupText < MarkupItem
|
|
55
|
+
# The text
|
|
56
|
+
attr_accessor :text
|
|
57
|
+
|
|
58
|
+
def initialize(doc, text = "", strip = true)
|
|
59
|
+
super(doc)
|
|
60
|
+
@text = text
|
|
61
|
+
if strip
|
|
62
|
+
@text.gsub!(/\n/, " ")
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def to_s
|
|
67
|
+
return text
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def dump_string
|
|
71
|
+
return "text: #{@text}"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# A markup item representing verbatim text, with the given
|
|
77
|
+
# class
|
|
78
|
+
class MarkupVerbatim < MarkupItem
|
|
79
|
+
# The text
|
|
80
|
+
attr_accessor :text
|
|
81
|
+
|
|
82
|
+
# The verbatim text class
|
|
83
|
+
attr_accessor :cls
|
|
84
|
+
|
|
85
|
+
def initialize(doc, text, cls)
|
|
86
|
+
super(doc)
|
|
87
|
+
@text = text
|
|
88
|
+
@cls = cls
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def to_s
|
|
92
|
+
return text
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def dump_string
|
|
96
|
+
return "#{@cls}: #{@text}"
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# A link to a type/group/command
|
|
102
|
+
class MarkupLink < MarkupItem
|
|
103
|
+
# The object target of the link
|
|
104
|
+
attr_accessor :target
|
|
105
|
+
|
|
106
|
+
# _target_ is the name of the target, which can be of _type_
|
|
107
|
+
# 'group', 'command' and 'type'.
|
|
108
|
+
def initialize(doc, target, type)
|
|
109
|
+
super(doc)
|
|
110
|
+
@target = doc.send("#{type}s")[target]
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def to_s
|
|
114
|
+
if @target
|
|
115
|
+
return @target.name
|
|
116
|
+
else
|
|
117
|
+
return "unknown"
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def dump_string
|
|
122
|
+
return "link: #{@target}"
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# An itemize object
|
|
127
|
+
class MarkupItemize < MarkupItem
|
|
128
|
+
|
|
129
|
+
# An array of arrays of MarkupItem, each representing an
|
|
130
|
+
# element of the itemize object.
|
|
131
|
+
attr_accessor :items
|
|
132
|
+
|
|
133
|
+
def initialize(doc, items = [])
|
|
134
|
+
super(doc)
|
|
135
|
+
@items = items
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def to_s
|
|
139
|
+
str = ""
|
|
140
|
+
for i in @items
|
|
141
|
+
str << " * "
|
|
142
|
+
for j in i
|
|
143
|
+
str << j.to_s
|
|
144
|
+
end
|
|
145
|
+
str << "\n"
|
|
146
|
+
end
|
|
147
|
+
return str
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def dump_string
|
|
151
|
+
return @items.map {|x|
|
|
152
|
+
"* #{x.map do |y| y.dump_string; end}\n"
|
|
153
|
+
}.join('')
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# An item that contains a paragraph
|
|
159
|
+
class MarkupParagraph < MarkupItem
|
|
160
|
+
attr_accessor :elements
|
|
161
|
+
|
|
162
|
+
def initialize(doc, elements)
|
|
163
|
+
super(doc)
|
|
164
|
+
@elements = elements
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def to_s
|
|
168
|
+
return @elements.map {|x| x.to_s }.join('')
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def dump_string
|
|
172
|
+
return "par: " + @elements.map {|x|
|
|
173
|
+
" #{x.dump_string}\n"
|
|
174
|
+
}.join('')
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# The reference Doc object
|
|
180
|
+
attr_accessor :doc
|
|
181
|
+
|
|
182
|
+
# The elements that make up the MarkedUpText
|
|
183
|
+
attr_accessor :elements
|
|
184
|
+
|
|
185
|
+
# Creates a MarkedUpText object.
|
|
186
|
+
def initialize(doc, text = nil)
|
|
187
|
+
@elements = []
|
|
188
|
+
@doc = doc
|
|
189
|
+
if text
|
|
190
|
+
parse_from_string(text)
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def dump
|
|
196
|
+
puts "Number of elements: #{@elements.size}"
|
|
197
|
+
for el in @elements
|
|
198
|
+
puts "#{el.class} -> #{el.to_s}"
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
# Parses the given _string_ and append the results to the
|
|
204
|
+
# MarkedUpText's elements.
|
|
205
|
+
#
|
|
206
|
+
# Markup elements:
|
|
207
|
+
#
|
|
208
|
+
# * a line beginning with '> ' is an example for command-line
|
|
209
|
+
# * a line beginning with '# ' is an example for use within a
|
|
210
|
+
# command file.
|
|
211
|
+
# * a line beginning with '@ ' is a generic verbatim text.
|
|
212
|
+
# * a line beginning with ' *' is an element of an
|
|
213
|
+
# itemize. The itemize finishes when a new paragraph is
|
|
214
|
+
# starting.
|
|
215
|
+
# * a {group: ...} or {type: ...} or {command: ...} is a link
|
|
216
|
+
# to the element.
|
|
217
|
+
# * a blank line marks a paragraph break.
|
|
218
|
+
def parse_from_string(string)
|
|
219
|
+
@last_type = nil
|
|
220
|
+
@last_string = ""
|
|
221
|
+
|
|
222
|
+
lines = string.split(/[ \t]*\n/)
|
|
223
|
+
for l in lines
|
|
224
|
+
l.chomp!
|
|
225
|
+
case l
|
|
226
|
+
when /^[#>@]\s(.*)/ # a verbatim line
|
|
227
|
+
case l[0,1]
|
|
228
|
+
when '#'
|
|
229
|
+
type = :cmdfile
|
|
230
|
+
when '>'
|
|
231
|
+
type = :cmdline
|
|
232
|
+
else
|
|
233
|
+
type = :example
|
|
234
|
+
end
|
|
235
|
+
if @last_type == type
|
|
236
|
+
@last_string << "#{$1}\n"
|
|
237
|
+
else
|
|
238
|
+
flush_element
|
|
239
|
+
@last_type = type
|
|
240
|
+
@last_string = "#{$1}\n"
|
|
241
|
+
end
|
|
242
|
+
when /^\s\*\s*(.*)/
|
|
243
|
+
flush_element
|
|
244
|
+
@last_type = :item
|
|
245
|
+
@last_string = "#{$1}\n"
|
|
246
|
+
when /^\s*$/ # Blank line:
|
|
247
|
+
flush_element
|
|
248
|
+
@last_type = nil
|
|
249
|
+
@last_string = ""
|
|
250
|
+
else
|
|
251
|
+
case @last_type
|
|
252
|
+
when :item, :paragraph # simply go on
|
|
253
|
+
@last_string << "#{l}\n"
|
|
254
|
+
else
|
|
255
|
+
flush_element
|
|
256
|
+
@last_type = :paragraph
|
|
257
|
+
@last_string = "#{l}\n"
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
flush_element
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
protected
|
|
265
|
+
|
|
266
|
+
# Parses the markup found within a paragraph (ie: links and
|
|
267
|
+
# other text attributes, but not verbatim, list or other
|
|
268
|
+
# markings) and returns an array containing the MarkupItem
|
|
269
|
+
# elements.
|
|
270
|
+
def parse_paragraph_markup(doc, string)
|
|
271
|
+
els = []
|
|
272
|
+
while string =~ /\{(group|type|command):\s*([^}]+?)\s*\}/
|
|
273
|
+
els << MarkupText.new(doc, $`)
|
|
274
|
+
els << MarkupLink.new(doc, $2, $1)
|
|
275
|
+
string = $'
|
|
276
|
+
end
|
|
277
|
+
els << MarkupText.new(doc, string)
|
|
278
|
+
return els
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
# Adds the element accumulated so far to the @elements array.
|
|
282
|
+
def flush_element
|
|
283
|
+
case @last_type
|
|
284
|
+
when :cmdline, :cmdfile
|
|
285
|
+
@elements << MarkupVerbatim.new(@doc, @last_string,
|
|
286
|
+
"examples-#{@last_type}")
|
|
287
|
+
when :example
|
|
288
|
+
@elements << MarkupVerbatim.new(@doc, @last_string, "examples")
|
|
289
|
+
when :paragraph
|
|
290
|
+
@elements <<
|
|
291
|
+
MarkupParagraph.new(@doc,
|
|
292
|
+
parse_paragraph_markup(doc, @last_string))
|
|
293
|
+
when :item
|
|
294
|
+
if @elements.last.is_a?(MarkupItemize)
|
|
295
|
+
@elements.last.items <<
|
|
296
|
+
parse_paragraph_markup(doc, @last_string)
|
|
297
|
+
else
|
|
298
|
+
@elements <<
|
|
299
|
+
MarkupItemize.new(@doc,
|
|
300
|
+
[ parse_paragraph_markup(doc, @last_string)])
|
|
301
|
+
end
|
|
302
|
+
else # In principle, nil
|
|
303
|
+
return
|
|
304
|
+
end
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
# A class dumping markup information to standard output
|
|
311
|
+
class Markup
|
|
312
|
+
# The Doc object the Markup class should dump
|
|
313
|
+
attr_accessor :doc
|
|
314
|
+
|
|
315
|
+
def initialize(doc)
|
|
316
|
+
@doc = doc
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
# Dumps the markup of all commands
|
|
320
|
+
def write_commands(out = STDOUT)
|
|
321
|
+
cmds, groups = @doc.documented_commands
|
|
322
|
+
|
|
323
|
+
for g in groups
|
|
324
|
+
out.puts "Group markup: #{g.name}"
|
|
325
|
+
out.puts dump_markup(g.description)
|
|
326
|
+
|
|
327
|
+
commands = cmds[g].sort {|a,b|
|
|
328
|
+
a.name <=> b.name
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
for cmd in commands
|
|
332
|
+
out.puts "Command: #{cmd.name}"
|
|
333
|
+
out.puts dump_markup(cmd.long_description)
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
# Dumps the markup of all types
|
|
339
|
+
def write_types(out = STDOUT)
|
|
340
|
+
types = @doc.types.sort.map { |d| d[1]}
|
|
341
|
+
for t in types
|
|
342
|
+
out.puts "Type: #{t.name}"
|
|
343
|
+
out.puts dump_markup(t.description)
|
|
344
|
+
end
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
def dump_markup(items)
|
|
348
|
+
if items.is_a? String
|
|
349
|
+
mup = MarkedUpText.new(@doc, items)
|
|
350
|
+
return dump_markup(mup.elements)
|
|
351
|
+
end
|
|
352
|
+
return items.map { |x| "-> #{x.dump_string}\n"}
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
end
|
|
359
|
+
end
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# general-commands.rb: various global scope commands
|
|
2
|
+
# copyright (c) 2009 by Vincent Fourmond
|
|
3
|
+
|
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details (in the COPYING file).
|
|
13
|
+
|
|
14
|
+
require 'ctioga2/utils'
|
|
15
|
+
require 'ctioga2/commands/general-types'
|
|
16
|
+
require 'ctioga2/commands/parsers/file'
|
|
17
|
+
|
|
18
|
+
module CTioga2
|
|
19
|
+
|
|
20
|
+
Version::register_svn_info('$Revision: 55 $', '$Date: 2009-05-27 00:01:34 +0200 (Wed, 27 May 2009) $')
|
|
21
|
+
|
|
22
|
+
module Commands
|
|
23
|
+
|
|
24
|
+
# General scope commands.
|
|
25
|
+
GeneralGroup =
|
|
26
|
+
CmdGroup.new('general', "General commands",
|
|
27
|
+
"General scope commands", 1000)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Display help on the command-line
|
|
32
|
+
CommandLineHelpCommand =
|
|
33
|
+
Cmd.new("command-line-help", 'h',
|
|
34
|
+
"--help", [ ]) do |plotmaker|
|
|
35
|
+
plotmaker.interpreter.doc.display_command_line_help
|
|
36
|
+
exit
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
CommandLineHelpCommand.describe("Prints help on command-line options and exits",
|
|
40
|
+
<<EOH, GeneralGroup)
|
|
41
|
+
Prints helps about short and long options available when run from the
|
|
42
|
+
command-line.
|
|
43
|
+
EOH
|
|
44
|
+
|
|
45
|
+
# Prints the version of ctioga2 used
|
|
46
|
+
PrintVersion = Cmd.new("version", '-V', "--version", []) do |plotmaker|
|
|
47
|
+
puts "This is ctioga2 version #{CTioga2::Version::version}"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
PrintVersion.describe("Prints the version",
|
|
51
|
+
"Prints the version of ctioga in use",
|
|
52
|
+
GeneralGroup)
|
|
53
|
+
|
|
54
|
+
# Includes a file
|
|
55
|
+
RunCommandFile =
|
|
56
|
+
Cmd.new("include", '-f', "--file",
|
|
57
|
+
[ CmdArg.new('file'), ]) do |plotmaker, file|
|
|
58
|
+
plotmaker.interpreter.run_command_file(file)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
RunCommandFile.describe("Runs given command file", <<EOH, GeneralGroup)
|
|
62
|
+
Reads the file and runs commands found in them, using the ctioga language.
|
|
63
|
+
> ctioga2 -f my_file.ct2
|
|
64
|
+
EOH
|
|
65
|
+
|
|
66
|
+
# Evaluate a series of commands.
|
|
67
|
+
EvalCommand = Cmd.new("eval", '-e', "--eval",
|
|
68
|
+
[ CmdArg.new('commands'), ]) do |plotmaker, string|
|
|
69
|
+
plotmaker.interpreter.run_commands(string)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
EvalCommand.describe("Runs the given commands", <<EOH, GeneralGroup)
|
|
73
|
+
Runs the given strings as commands, as if given from a command file.
|
|
74
|
+
EOH
|
|
75
|
+
|
|
76
|
+
# Increases verbosity
|
|
77
|
+
VerboseLogging =
|
|
78
|
+
Cmd.new("verbose", '-v', "--verbose", [ ]) do |plotmaker|
|
|
79
|
+
CTioga2::Log::set_level(Logger::INFO)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
VerboseLogging.describe("Makes ctioga2 more verbose", <<EOH, GeneralGroup)
|
|
83
|
+
With this on, ctioga2 outputs quite a fair amount of informative messages.
|
|
84
|
+
EOH
|
|
85
|
+
|
|
86
|
+
# Write debugging information.
|
|
87
|
+
#
|
|
88
|
+
# TODO: this should be the place where a lot of customization of
|
|
89
|
+
# the debug output could go - including channels or things like
|
|
90
|
+
# that. To be seen later on...
|
|
91
|
+
DebugLogging =
|
|
92
|
+
Cmd.new("debug", nil, "--debug", [ ]) do |plotmaker|
|
|
93
|
+
CTioga2::Log::set_level(Logger::DEBUG)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
DebugLogging.describe("Makes ctioga2 write out debugging information",
|
|
97
|
+
<<EOH, GeneralGroup)
|
|
98
|
+
With this on, ctioga2 writes a whole lot of debugging information. You
|
|
99
|
+
probably will not need that unless you intend to file a bug report or
|
|
100
|
+
to tackle a problem yourself.
|
|
101
|
+
EOH
|
|
102
|
+
|
|
103
|
+
# Includes a file
|
|
104
|
+
EchoCmd =
|
|
105
|
+
Cmd.new("echo", nil, "--echo", [ ]) do |plotmaker|
|
|
106
|
+
STDERR.puts "Command-line used: "
|
|
107
|
+
STDERR.puts plotmaker.quoted_command_line
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
EchoCmd.describe("Prints command-line used to standard error",
|
|
111
|
+
<<EOH, GeneralGroup)
|
|
112
|
+
Writes the whole command-line used to standard error, quoted in such a
|
|
113
|
+
way that it should be usable directly for copy/paste.
|
|
114
|
+
EOH
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|