cmdr
Check-in [714b81acaf]
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Filled out the basic changelog, and extended the set of requirements.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 714b81acaf3972b9feb45a14f6141d229ea28524
User & Date: andreask 2013-10-21 21:36:34
Context
2013-10-21
21:55
Continued filling out the cmdr requirements. check-in: 4bacb86a2f user: andreask tags: trunk
21:36
Filled out the basic changelog, and extended the set of requirements. check-in: 714b81acaf user: andreask tags: trunk
21:07
Outline of cmdr documentation, generated via kettle's experimental doc-templating branch/work. check-in: 1dd5f2baba user: andreask tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to doc/cmdr_changes.man.

2
3
4
5
6
7
8
9

10
11

12
13
14
15
16
[include parts/definitions.inc]
[manpage_begin [vset PROJECT]_changes [vset MAN_SECTION] [vset VERSION]]
[include parts/module.inc]
[titledesc [vset TITLE_CHANGES]]
[description]
[include parts/welcome.inc]

[comment {-- @EDIT Please edit to suit -- }]


[comment {--- Changes Begin ---}]

[comment {--- Changes End -----}]

[include parts/related.inc]
[include parts/feedback.inc]
[manpage_end]






|
>


>





2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[include parts/definitions.inc]
[manpage_begin [vset PROJECT]_changes [vset MAN_SECTION] [vset VERSION]]
[include parts/module.inc]
[titledesc [vset TITLE_CHANGES]]
[description]
[include parts/welcome.inc]

This document provides an overview of the changes [package [vset PROJECT]]
underwent from version to version.

[comment {--- Changes Begin ---}]
[include parts/changes.inc]
[comment {--- Changes End -----}]

[include parts/related.inc]
[include parts/feedback.inc]
[manpage_end]

Added doc/parts/changes.inc.




>
>
1
2
[section Changes]
[include changes1.inc]

Added doc/parts/changes1.inc.






























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
This is the first release of [vset PROJECT].
The changes therefore describe the initial features of the system.

[para] In detail:

[list_begin enumerated]
[comment {- - -- --- ----- -------- ------------- ---------------------}]

[enum] [vset PROJECT] requires Tcl 8.5 or higher.
       Tcl 8.4 or less is not supported.

[enum] The framework provides a DSL for the declaration of a hierarchy
       of commands and their parameters (named options, positional
       arguments, hidden state), with help texts, type information, and
       various callbacks (command actions, parameter definition,
       parameter completion, type validation, command completion, etc.)

[enum] At runtime the framework provides parsing and processing of command
       lines per specifications written in that DSL, determining the command
       to run, and the mapping from command line words to its parameters.

[enum] The framework also provides shells for the interactive entry of
	commands and parameters, with command line completion.

[enum] Last, but not least is the automatic generation of command line
       help for commands and parameters, based on the information provided
       in a specification.

[comment {- - -- --- ----- -------- ------------- ---------------------}]
[list_end]

Changes to doc/parts/requirements.inc.

1
2
3




[comment {--- Project requirements --}]
[include rq_tcl85.inc]
[include rq_kettle.inc]






>
>
>
>
1
2
3
4
5
6
7
[comment {--- Project requirements --}]
[include rq_tcl85.inc]
[include rq_kettle.inc]
[include rq_tcllib.inc]
[comment {-- [include rq_tcloo.inc] --}]
[comment {-- [include rq_linenoise.inc] --}]
[comment {-- [include rq_linenoiseutils.inc] --}]

Changes to doc/parts/rq_kettle.inc.

7
8
9
10
11
12
13
14
15
16
or the backup at
[uri http://chiselapp.com/andreas_kupries/repositories/Kettle]

and follow the instructions given at these sites to create a working
installation. They are not repeated here. If there are problems with
these instructions please file a bug against the Kettle project, and
not [vset PTITLE].

[para]






|


7
8
9
10
11
12
13
14
15
16
or the backup at
[uri http://chiselapp.com/andreas_kupries/repositories/Kettle]

and follow the instructions given at these sites to create a working
installation. They are not repeated here. If there are problems with
these instructions please file a bug against the Kettle project, and
not [package [vset PTITLE]].

[para]

Added doc/parts/rq_tcllib.inc.








































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
[subsection Tcllib]

The framework requires ten packages found in Tcllib.
These are

[list_begin enumerated]
[enum] [package debug]
[enum] [package debug::caller]
[enum] [package json::write]
[enum] [package lambda]
[enum] [package oo::util]
[enum] [package string::token::shell]
[enum] [package struct::queue]
[enum] [package term::ansi::code::ctrl]
[enum] [package textutil::adjust]
[enum] [package try]
[list_end]

[para] Out of the many possibilites for getting Tcllib (OS vendor,
os-independent vendor, building from sources) use whatever you are
comfortable with.

[para] For myself, I am most comfortable with using
[uri http://www.activestate.com ActiveState's]
ActiveTcl distribution and TEApot.

[para] See the previous section ([sectref Tcl]) for disclosure and
information on how to get it.

[para] Assuming that ActiveTcl got installed running the commands

[example {
    teacup install
}]

will install them for your platform, if you have not done the more
inclusive

[example {
    teacup update
}]

to get everything and the kitchensink.

[para] For those wishing to build and install Tcllib on their own, the
relevant sources can be found at [uri http://core.tcl.tk/tcllib]
together with the necessary instructions on how to build it.

[para] If there are problems with building, installing, or using
Tcllib and its packages please file a bug against Tcllib, or the
vendor of your distribution, and not [package [vset PROJECT]].

Changes to doc/parts/welcome.inc.

1
2
3
4
5
6
7
8


[comment {
  Cmdr = Commander. Framework for application command line handling.
}]

Welcome to the [vset PTITLE] project,
written by [vset AUTHOR],
and available from [uri [vset REPOSITORY]].


<
<
<
<
<
|
<
<
>
>




1


2
3




[para] Welcome to the [vset PTITLE] project, written by [vset AUTHOR].


[para] For availability please read [term [vset TITLE_SOURCES]].
[para]

Changes to embedded/man/files/cmdr_changes.n.

240
241
242
243
244
245
246

247
248
249






























250
251
252
253
254
255
256
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_changes" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_changes \- Cmdr - Log of Changes
.SH DESCRIPTION

Welcome to the Cmdr project,
written by Andreas Kupries,
and available from \fIhttps:/core.tcl.tk/akupries/cmdr\fR.






























.SH "RELATED DOCUMENTS"
.IP [1]
\fICmdr - Introduction to the project\fR
.IP [2]
\fICmdr - License\fR
.IP [3]
\fICmdr - Log of Changes\fR






>
|
<
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







240
241
242
243
244
245
246
247
248

249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_changes" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_changes \- Cmdr - Log of Changes
.SH DESCRIPTION
.PP
Welcome to the Cmdr project, written by Andreas Kupries.

.PP
For availability please read \fICmdr - How To Get The Sources\fR.
.PP
This document provides an overview of the changes \fBcmdr\fR
underwent from version to version.
.SH CHANGES
This is the first release of cmdr.
The changes therefore describe the initial features of the system.
.PP
In detail:
.IP [1]
cmdr requires Tcl 8.5 or higher.
Tcl 8.4 or less is not supported.
.IP [2]
The framework provides a DSL for the declaration of a hierarchy
of commands and their parameters (named options, positional
arguments, hidden state), with help texts, type information, and
various callbacks (command actions, parameter definition,
parameter completion, type validation, command completion, etc.)
.IP [3]
At runtime the framework provides parsing and processing of command
lines per specifications written in that DSL, determining the command
to run, and the mapping from command line words to its parameters.
.IP [4]
The framework also provides shells for the interactive entry of
commands and parameters, with command line completion.
.IP [5]
Last, but not least is the automatic generation of command line
help for commands and parameters, based on the information provided
in a specification.
.PP
.SH "RELATED DOCUMENTS"
.IP [1]
\fICmdr - Introduction to the project\fR
.IP [2]
\fICmdr - License\fR
.IP [3]
\fICmdr - Log of Changes\fR

Changes to embedded/man/files/cmdr_howto_development.n.

240
241
242
243
244
245
246

247
248
249


250
251
252
253
254
255
256
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_development" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_development \- Cmdr - The Developer's Guide
.SH DESCRIPTION

Welcome to the Cmdr project,
written by Andreas Kupries,
and available from \fIhttps:/core.tcl.tk/akupries/cmdr\fR.


.PP
The audience of this document are anyone wishing to modify
Cmdr in any way, shape, or form. This can be a maintainer
fixing bugs, a developer adding functionality, or patching it to
accommodate local cicumstances, etc.
.PP
Please read






>
|
<
|
>
>







240
241
242
243
244
245
246
247
248

249
250
251
252
253
254
255
256
257
258
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_development" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_development \- Cmdr - The Developer's Guide
.SH DESCRIPTION
.PP
Welcome to the Cmdr project, written by Andreas Kupries.

.PP
For availability please read \fICmdr - How To Get The Sources\fR.
.PP
.PP
The audience of this document are anyone wishing to modify
Cmdr in any way, shape, or form. This can be a maintainer
fixing bugs, a developer adding functionality, or patching it to
accommodate local cicumstances, etc.
.PP
Please read

Changes to embedded/man/files/cmdr_howto_get_sources.n.

240
241
242
243
244
245
246

247
248
249


250
251
252
253
254
255
256
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_howto_get_sources" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_howto_get_sources \- Cmdr - How To Get The Sources
.SH DESCRIPTION

Welcome to the Cmdr project,
written by Andreas Kupries,
and available from \fIhttps:/core.tcl.tk/akupries/cmdr\fR.


.PP
The audience of this document are anyone wishing to either have just a
look at Cmdr's sources, or to build the project, or to extend
and modify it. The list of \fBRelated Documents\fR provides
references to information for the latter two.
.SH LOCATION
The official repository of the project is at \fIhttps:/core.tcl.tk/akupries/cmdr\fR.






>
|
<
|
>
>







240
241
242
243
244
245
246
247
248

249
250
251
252
253
254
255
256
257
258
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_howto_get_sources" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_howto_get_sources \- Cmdr - How To Get The Sources
.SH DESCRIPTION
.PP
Welcome to the Cmdr project, written by Andreas Kupries.

.PP
For availability please read \fICmdr - How To Get The Sources\fR.
.PP
.PP
The audience of this document are anyone wishing to either have just a
look at Cmdr's sources, or to build the project, or to extend
and modify it. The list of \fBRelated Documents\fR provides
references to information for the latter two.
.SH LOCATION
The official repository of the project is at \fIhttps:/core.tcl.tk/akupries/cmdr\fR.

Changes to embedded/man/files/cmdr_howto_installation.n.

240
241
242
243
244
245
246

247
248
249


250
251
252
253
254
255
256
...
296
297
298
299
300
301
302
303
304




























































305
306
307
308
309
310
311
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_installation" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_installation \- Cmdr - The Installer's Guide
.SH DESCRIPTION

Welcome to the Cmdr project,
written by Andreas Kupries,
and available from \fIhttps:/core.tcl.tk/akupries/cmdr\fR.


.PP
The audience of this document are anyone wishing to build the
Cmdr project, for either themselves, or others.
.PP
If you are a developer intending to extend or modify the project
please see the list of \fBRelated Documents\fR for references to
more information on this topic.
................................................................................
Please go to either the main repository at
\fIhttp://core.tcl.tk/akupries/kettle\fR
or the backup at
\fIhttp://chiselapp.com/andreas_kupries/repositories/Kettle\fR
and follow the instructions given at these sites to create a working
installation. They are not repeated here. If there are problems with
these instructions please file a bug against the Kettle project, and
not Cmdr.
.PP




























































.SH "BUILD & INSTALLATION"
Cmdr uses the Kettle application and package to handle building
and installation. It is assumed to be installed and working. Please see
section \fBKettle\fR in \fBRequisites\fR for more information.
.PP
Note that all access to Kettle is mediated by the "\fIbuild.tcl\fR"
script, found in the top-level directory of the project.






>
|
<
|
>
>







 







|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







240
241
242
243
244
245
246
247
248

249
250
251
252
253
254
255
256
257
258
...
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_installation" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_installation \- Cmdr - The Installer's Guide
.SH DESCRIPTION
.PP
Welcome to the Cmdr project, written by Andreas Kupries.

.PP
For availability please read \fICmdr - How To Get The Sources\fR.
.PP
.PP
The audience of this document are anyone wishing to build the
Cmdr project, for either themselves, or others.
.PP
If you are a developer intending to extend or modify the project
please see the list of \fBRelated Documents\fR for references to
more information on this topic.
................................................................................
Please go to either the main repository at
\fIhttp://core.tcl.tk/akupries/kettle\fR
or the backup at
\fIhttp://chiselapp.com/andreas_kupries/repositories/Kettle\fR
and follow the instructions given at these sites to create a working
installation. They are not repeated here. If there are problems with
these instructions please file a bug against the Kettle project, and
not \fBCmdr\fR.
.PP
.SS TCLLIB
The framework requires ten packages found in Tcllib.
These are
.IP [1]
\fBdebug\fR
.IP [2]
\fBdebug::caller\fR
.IP [3]
\fBjson::write\fR
.IP [4]
\fBlambda\fR
.IP [5]
\fBoo::util\fR
.IP [6]
\fBstring::token::shell\fR
.IP [7]
\fBstruct::queue\fR
.IP [8]
\fBterm::ansi::code::ctrl\fR
.IP [9]
\fBtextutil::adjust\fR
.IP [10]
\fBtry\fR
.PP
.PP
Out of the many possibilites for getting Tcllib (OS vendor,
os-independent vendor, building from sources) use whatever you are
comfortable with.
.PP
For myself, I am most comfortable with using
\fIActiveState's\fR [http://www.activestate.com]
ActiveTcl distribution and TEApot.
.PP
See the previous section (\fBTcl\fR) for disclosure and
information on how to get it.
.PP
Assuming that ActiveTcl got installed running the commands
.CS


    teacup install

.CE
will install them for your platform, if you have not done the more
inclusive
.CS


    teacup update

.CE
to get everything and the kitchensink.
.PP
For those wishing to build and install Tcllib on their own, the
relevant sources can be found at \fIhttp://core.tcl.tk/tcllib\fR
together with the necessary instructions on how to build it.
.PP
If there are problems with building, installing, or using
Tcllib and its packages please file a bug against Tcllib, or the
vendor of your distribution, and not \fBcmdr\fR.
.SH "BUILD & INSTALLATION"
Cmdr uses the Kettle application and package to handle building
and installation. It is assumed to be installed and working. Please see
section \fBKettle\fR in \fBRequisites\fR for more information.
.PP
Note that all access to Kettle is mediated by the "\fIbuild.tcl\fR"
script, found in the top-level directory of the project.

Changes to embedded/man/files/cmdr_introduction.n.

240
241
242
243
244
245
246

247
248
249


250
251
252
253
254
255
256
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_introduction" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_introduction \- Cmdr - Introduction to the project
.SH DESCRIPTION

Welcome to the Cmdr project,
written by Andreas Kupries,
and available from \fIhttps:/core.tcl.tk/akupries/cmdr\fR.


.SH "SYSTEM ARCHITECTURE"
.SH "RELATED DOCUMENTS"
.IP [1]
\fICmdr - Introduction to the project\fR
.IP [2]
\fICmdr - License\fR
.IP [3]






>
|
<
|
>
>







240
241
242
243
244
245
246
247
248

249
250
251
252
253
254
255
256
257
258
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_introduction" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_introduction \- Cmdr - Introduction to the project
.SH DESCRIPTION
.PP
Welcome to the Cmdr project, written by Andreas Kupries.

.PP
For availability please read \fICmdr - How To Get The Sources\fR.
.PP
.SH "SYSTEM ARCHITECTURE"
.SH "RELATED DOCUMENTS"
.IP [1]
\fICmdr - Introduction to the project\fR
.IP [2]
\fICmdr - License\fR
.IP [3]

Changes to embedded/man/files/cmdr_license.n.

240
241
242
243
244
245
246

247
248
249


250
251
252
253
254
255
256
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_license" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_license \- Cmdr - License
.SH DESCRIPTION

Welcome to the Cmdr project,
written by Andreas Kupries,
and available from \fIhttps:/core.tcl.tk/akupries/cmdr\fR.


.PP
The packages are under the BSD license.
.PP
This software is copyrighted by Andreas Kupries and other
parties.  The following terms apply to all files associated with the
software unless explicitly disclaimed in individual files.
.PP






>
|
<
|
>
>







240
241
242
243
244
245
246
247
248

249
250
251
252
253
254
255
256
257
258
\\$1\l'|0\(ul'\\$2
..
.TH "cmdr_license" n 0 doc "<<unknown>>"
.BS
.SH NAME
cmdr_license \- Cmdr - License
.SH DESCRIPTION
.PP
Welcome to the Cmdr project, written by Andreas Kupries.

.PP
For availability please read \fICmdr - How To Get The Sources\fR.
.PP
.PP
The packages are under the BSD license.
.PP
This software is copyrighted by Andreas Kupries and other
parties.  The following terms apply to all files associated with the
software unless explicitly disclaimed in individual files.
.PP

Changes to embedded/www/doc/files/cmdr_changes.html.

109
110
111
112
113
114
115
116
117

118
119
120
121
122
123
124
125

126
127






















128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>cmdr_changes - Cmdr - Log of Changes</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Related Documents</a></li>
<li class="section"><a href="#section3">Bugs, Ideas, Feedback</a></li>

<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project,
written by Andreas Kupries,
and available from <a href="https:/core.tcl.tk/akupries/cmdr">https:/core.tcl.tk/akupries/cmdr</a>.</p>

</div>
<div id="section2" class="section"><h2><a name="section2">Related Documents</a></h2>






















<ol class="enumerated">
<li><p><i class="term"><a href="cmdr_introduction.html">Cmdr - Introduction to the project</a></i></p></li>
<li><p><i class="term"><a href="cmdr_license.html">Cmdr - License</a></i></p></li>
<li><p><i class="term">Cmdr - Log of Changes</i></p></li>
<li><p><i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i></p></li>
<li><p><i class="term"><a href="cmdr_howto_installation.html">Cmdr - The Installer's Guide</a></i></p></li>
<li><p><i class="term"><a href="cmdr_howto_development.html">Cmdr - The Developer's Guide</a></i></p></li>
</ol>
</div>
<div id="section3" class="section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>
<p>Both the package(s) and this documentation will undoubtedly contain
bugs and other problems.
Please report such at
<a href="https:/core.tcl.tk/akupries/cmdr">Cmdr Tickets</a>.</p>
<p>Please also report any ideas you may have for enhancements of
either package(s) and/or documentation.</p>
</div>






|
|
>





|
|
|
>

|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>









|







109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<div id="name" class="section"><h2><a name="name">Name</a></h2>
<p>cmdr_changes - Cmdr - Log of Changes</p>
</div>
<div id="toc" class="section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Changes</a></li>
<li class="section"><a href="#section3">Related Documents</a></li>
<li class="section"><a href="#section4">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
<p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>
<p>This document provides an overview of the changes <b class="package">cmdr</b>
underwent from version to version.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Changes</a></h2>
<p>This is the first release of cmdr.
The changes therefore describe the initial features of the system.</p>
<p>In detail:</p>
<ol class="enumerated">
<li><p>cmdr requires Tcl 8.5 or higher.
       Tcl 8.4 or less is not supported.</p></li>
<li><p>The framework provides a DSL for the declaration of a hierarchy
       of commands and their parameters (named options, positional
       arguments, hidden state), with help texts, type information, and
       various callbacks (command actions, parameter definition,
       parameter completion, type validation, command completion, etc.)</p></li>
<li><p>At runtime the framework provides parsing and processing of command
       lines per specifications written in that DSL, determining the command
       to run, and the mapping from command line words to its parameters.</p></li>
<li><p>The framework also provides shells for the interactive entry of
	commands and parameters, with command line completion.</p></li>
<li><p>Last, but not least is the automatic generation of command line
       help for commands and parameters, based on the information provided
       in a specification.</p></li>
</ol>
</div>
<div id="section3" class="section"><h2><a name="section3">Related Documents</a></h2>
<ol class="enumerated">
<li><p><i class="term"><a href="cmdr_introduction.html">Cmdr - Introduction to the project</a></i></p></li>
<li><p><i class="term"><a href="cmdr_license.html">Cmdr - License</a></i></p></li>
<li><p><i class="term">Cmdr - Log of Changes</i></p></li>
<li><p><i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i></p></li>
<li><p><i class="term"><a href="cmdr_howto_installation.html">Cmdr - The Installer's Guide</a></i></p></li>
<li><p><i class="term"><a href="cmdr_howto_development.html">Cmdr - The Developer's Guide</a></i></p></li>
</ol>
</div>
<div id="section4" class="section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>Both the package(s) and this documentation will undoubtedly contain
bugs and other problems.
Please report such at
<a href="https:/core.tcl.tk/akupries/cmdr">Cmdr Tickets</a>.</p>
<p>Please also report any ideas you may have for enhancements of
either package(s) and/or documentation.</p>
</div>

Changes to embedded/www/doc/files/cmdr_howto_development.html.

120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<li class="section"><a href="#section6">Related Documents</a></li>
<li class="section"><a href="#section7">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project,
written by Andreas Kupries,
and available from <a href="https:/core.tcl.tk/akupries/cmdr">https:/core.tcl.tk/akupries/cmdr</a>.</p>
<p>The audience of this document are anyone wishing to modify
Cmdr in any way, shape, or form. This can be a maintainer
fixing bugs, a developer adding functionality, or patching it to
accommodate local cicumstances, etc.</p>
<p>Please read</p>
<ol class="enumerated">
<li><p><i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i> and</p></li>






|
|
<







120
121
122
123
124
125
126
127
128

129
130
131
132
133
134
135
<li class="section"><a href="#section6">Related Documents</a></li>
<li class="section"><a href="#section7">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
<p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>

<p>The audience of this document are anyone wishing to modify
Cmdr in any way, shape, or form. This can be a maintainer
fixing bugs, a developer adding functionality, or patching it to
accommodate local cicumstances, etc.</p>
<p>Please read</p>
<ol class="enumerated">
<li><p><i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i> and</p></li>

Changes to embedded/www/doc/files/cmdr_howto_get_sources.html.

119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<li class="section"><a href="#section5">Related Documents</a></li>
<li class="section"><a href="#section6">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project,
written by Andreas Kupries,
and available from <a href="https:/core.tcl.tk/akupries/cmdr">https:/core.tcl.tk/akupries/cmdr</a>.</p>
<p>The audience of this document are anyone wishing to either have just a
look at Cmdr's sources, or to build the project, or to extend
and modify it. The list of <span class="sectref"><a href="#section5">Related Documents</a></span> provides
references to information for the latter two.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Location</a></h2>
<p>The official repository of the project is at <a href="https:/core.tcl.tk/akupries/cmdr">https:/core.tcl.tk/akupries/cmdr</a>.






|
|
<







119
120
121
122
123
124
125
126
127

128
129
130
131
132
133
134
<li class="section"><a href="#section5">Related Documents</a></li>
<li class="section"><a href="#section6">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
<p>For availability please read <i class="term">Cmdr - How To Get The Sources</i>.</p>

<p>The audience of this document are anyone wishing to either have just a
look at Cmdr's sources, or to build the project, or to extend
and modify it. The list of <span class="sectref"><a href="#section5">Related Documents</a></span> provides
references to information for the latter two.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">Location</a></h2>
<p>The official repository of the project is at <a href="https:/core.tcl.tk/akupries/cmdr">https:/core.tcl.tk/akupries/cmdr</a>.

Changes to embedded/www/doc/files/cmdr_howto_installation.html.

113
114
115
116
117
118
119

120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
...
169
170
171
172
173
174
175
176








































177
178
179
180
181
182
183
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Requisites</a>
<ul>
<li class="subsection"><a href="#subsection1">Tcl</a></li>
<li class="subsection"><a href="#subsection2">Kettle</a></li>

</ul>
</li>
<li class="section"><a href="#section3">Build &amp; Installation</a></li>
<li class="section"><a href="#section4">Related Documents</a></li>
<li class="section"><a href="#section5">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project,
written by Andreas Kupries,
and available from <a href="https:/core.tcl.tk/akupries/cmdr">https:/core.tcl.tk/akupries/cmdr</a>.</p>
<p>The audience of this document are anyone wishing to build the
Cmdr project, for either themselves, or others.</p>
<p>If you are a developer intending to extend or modify the project
please see the list of <span class="sectref"><a href="#section4">Related Documents</a></span> for references to
more information on this topic.</p>
<p>Please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i> first, if that was not done
already. Here we assume that the sources are already available in a
................................................................................
<p>Please go to either the main repository at
<a href="http://core.tcl.tk/akupries/kettle">http://core.tcl.tk/akupries/kettle</a>
or the backup at
<a href="http://chiselapp.com/andreas_kupries/repositories/Kettle">http://chiselapp.com/andreas_kupries/repositories/Kettle</a>
and follow the instructions given at these sites to create a working
installation. They are not repeated here. If there are problems with
these instructions please file a bug against the Kettle project, and
not Cmdr.</p>








































</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Build &amp; Installation</a></h2>
<p>Cmdr uses the Kettle application and package to handle building
and installation. It is assumed to be installed and working. Please see
section <span class="sectref"><a href="#subsection2">Kettle</a></span> in <span class="sectref"><a href="#section2">Requisites</a></span> for more information.</p>
<p>Note that all access to Kettle is mediated by the &quot;<b class="file">build.tcl</b>&quot;






>










|
|
<







 







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132

133
134
135
136
137
138
139
...
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<ul class="toc">
<li class="section"><a href="#toc">Table Of Contents</a></li>
<li class="section"><a href="#section1">Description</a></li>
<li class="section"><a href="#section2">Requisites</a>
<ul>
<li class="subsection"><a href="#subsection1">Tcl</a></li>
<li class="subsection"><a href="#subsection2">Kettle</a></li>
<li class="subsection"><a href="#subsection3">Tcllib</a></li>
</ul>
</li>
<li class="section"><a href="#section3">Build &amp; Installation</a></li>
<li class="section"><a href="#section4">Related Documents</a></li>
<li class="section"><a href="#section5">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
<p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>

<p>The audience of this document are anyone wishing to build the
Cmdr project, for either themselves, or others.</p>
<p>If you are a developer intending to extend or modify the project
please see the list of <span class="sectref"><a href="#section4">Related Documents</a></span> for references to
more information on this topic.</p>
<p>Please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i> first, if that was not done
already. Here we assume that the sources are already available in a
................................................................................
<p>Please go to either the main repository at
<a href="http://core.tcl.tk/akupries/kettle">http://core.tcl.tk/akupries/kettle</a>
or the backup at
<a href="http://chiselapp.com/andreas_kupries/repositories/Kettle">http://chiselapp.com/andreas_kupries/repositories/Kettle</a>
and follow the instructions given at these sites to create a working
installation. They are not repeated here. If there are problems with
these instructions please file a bug against the Kettle project, and
not <b class="package">Cmdr</b>.</p>
</div>
<div id="subsection3" class="subsection"><h3><a name="subsection3">Tcllib</a></h3>
<p>The framework requires ten packages found in Tcllib.
These are</p>
<ol class="enumerated">
<li><p><b class="package">debug</b></p></li>
<li><p><b class="package">debug::caller</b></p></li>
<li><p><b class="package">json::write</b></p></li>
<li><p><b class="package">lambda</b></p></li>
<li><p><b class="package">oo::util</b></p></li>
<li><p><b class="package">string::token::shell</b></p></li>
<li><p><b class="package">struct::queue</b></p></li>
<li><p><b class="package">term::ansi::code::ctrl</b></p></li>
<li><p><b class="package">textutil::adjust</b></p></li>
<li><p><b class="package">try</b></p></li>
</ol>
<p>Out of the many possibilites for getting Tcllib (OS vendor,
os-independent vendor, building from sources) use whatever you are
comfortable with.</p>
<p>For myself, I am most comfortable with using
<a href="http://www.activestate.com">ActiveState's</a>
ActiveTcl distribution and TEApot.</p>
<p>See the previous section (<span class="sectref"><a href="#subsection1">Tcl</a></span>) for disclosure and
information on how to get it.</p>
<p>Assuming that ActiveTcl got installed running the commands</p>
<pre class="example">
    teacup install
</pre>
<p>will install them for your platform, if you have not done the more
inclusive</p>
<pre class="example">
    teacup update
</pre>
<p>to get everything and the kitchensink.</p>
<p>For those wishing to build and install Tcllib on their own, the
relevant sources can be found at <a href="http://core.tcl.tk/tcllib">http://core.tcl.tk/tcllib</a>
together with the necessary instructions on how to build it.</p>
<p>If there are problems with building, installing, or using
Tcllib and its packages please file a bug against Tcllib, or the
vendor of your distribution, and not <b class="package">cmdr</b>.</p>
</div>
</div>
<div id="section3" class="section"><h2><a name="section3">Build &amp; Installation</a></h2>
<p>Cmdr uses the Kettle application and package to handle building
and installation. It is assumed to be installed and working. Please see
section <span class="sectref"><a href="#subsection2">Kettle</a></span> in <span class="sectref"><a href="#section2">Requisites</a></span> for more information.</p>
<p>Note that all access to Kettle is mediated by the &quot;<b class="file">build.tcl</b>&quot;

Changes to embedded/www/doc/files/cmdr_introduction.html.

117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<li class="section"><a href="#section3">Related Documents</a></li>
<li class="section"><a href="#section4">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project,
written by Andreas Kupries,
and available from <a href="https:/core.tcl.tk/akupries/cmdr">https:/core.tcl.tk/akupries/cmdr</a>.</p>
</div>
<div id="section2" class="section"><h2><a name="section2">System Architecture</a></h2>
</div>
<div id="section3" class="section"><h2><a name="section3">Related Documents</a></h2>
<ol class="enumerated">
<li><p><i class="term">Cmdr - Introduction to the project</i></p></li>
<li><p><i class="term"><a href="cmdr_license.html">Cmdr - License</a></i></p></li>






|
|
<







117
118
119
120
121
122
123
124
125

126
127
128
129
130
131
132
<li class="section"><a href="#section3">Related Documents</a></li>
<li class="section"><a href="#section4">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
<p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>

</div>
<div id="section2" class="section"><h2><a name="section2">System Architecture</a></h2>
</div>
<div id="section3" class="section"><h2><a name="section3">Related Documents</a></h2>
<ol class="enumerated">
<li><p><i class="term">Cmdr - Introduction to the project</i></p></li>
<li><p><i class="term"><a href="cmdr_license.html">Cmdr - License</a></i></p></li>

Changes to embedded/www/doc/files/cmdr_license.html.

116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<li class="section"><a href="#section2">Related Documents</a></li>
<li class="section"><a href="#section3">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project,
written by Andreas Kupries,
and available from <a href="https:/core.tcl.tk/akupries/cmdr">https:/core.tcl.tk/akupries/cmdr</a>.</p>
<p>The packages are under the BSD license.</p>
<p>This software is copyrighted by Andreas Kupries and other
parties.  The following terms apply to all files associated with the
software unless explicitly disclaimed in individual files.</p>
<p>The authors hereby grant permission to use, copy, modify,
distribute, and license this software and its documentation for any
purpose, provided that existing copyright notices are retained in all






|
|
<







116
117
118
119
120
121
122
123
124

125
126
127
128
129
130
131
<li class="section"><a href="#section2">Related Documents</a></li>
<li class="section"><a href="#section3">Bugs, Ideas, Feedback</a></li>
<li class="section"><a href="#keywords">Keywords</a></li>
<li class="section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="section1" class="section"><h2><a name="section1">Description</a></h2>
<p>Welcome to the Cmdr project, written by Andreas Kupries.</p>
<p>For availability please read <i class="term"><a href="cmdr_howto_get_sources.html">Cmdr - How To Get The Sources</a></i>.</p>

<p>The packages are under the BSD license.</p>
<p>This software is copyrighted by Andreas Kupries and other
parties.  The following terms apply to all files associated with the
software unless explicitly disclaimed in individual files.</p>
<p>The authors hereby grant permission to use, copy, modify,
distribute, and license this software and its documentation for any
purpose, provided that existing copyright notices are retained in all