Friday, December 10, 2010

The klish-1.3.1 is out.

Changes:

* The command aliases are implemented. The different command names can point to the same real command.
* Support for the make with parallel building.
* Fix autotools infrastructure.
* Bugfix.

Tuesday, November 23, 2010

The command aliases is implemented.

 The command can have the aliases. The resulting alias is equal to the original command except the name of command, help text and the value of internal variable ${__cmd}.

See the http://code.google.com/p/klish/wiki/command_alias for details.

Thursday, November 18, 2010

The shebang settings is documented.

See the http://code.google.com/p/klish/wiki/shebang for the details.

The restoring of command's context is documented.

The restoring of command's context is documented. When the hierarchy of nested views is built the lower views inherit the commands from the higher views often. You can execute these commands directly if the same commands was not redefined in the current view. It's necessary to set the command's native context before its execution.

See the http://code.google.com/p/klish/wiki/nested_views#Restore_the_command_context and http://code.google.com/p/klish/wiki/VIEW for the details.
 

Tuesday, November 16, 2010

The conditional variables is documented.

The conditional variables is documented. The parameter can be dynamically enabled or disabled depending on the condition. The condition have the syntax same as standard /bin/test utility. So the parameter visibility can depend on the previous parameters values or internal variables.

See the http://code.google.com/p/klish/wiki/conditional_param for documentation.

Thanks to lff.frm.

The locking mechanism is documented.

The locking mechanism is documented. The locking mechanism allows to execute several instances of clish utility (or another programs based on libclish library) simultaneously without conflicts.

http://code.google.com/p/klish/wiki/locking_mechanism

Wednesday, November 10, 2010

The klish-1.3.0 is out.

Changes:

* The klish specific examples were added.
* The konf utility was developed for the communicating to konfd daemon from the command line. It can set, unset entries into the user config and get the current config state.
* The libclish API was changed. The clish shell is not needed to be executed within thread. The clish utility doesn't use threads now.
* The locking mechanism is implemented. It is used to synchronize different instances of clish or utilities based on libclish libarary. The option to disable locking is implemented in clish utility because it can be executed from another clish.
* The conditional PARAMs is implemented. The PARAM can be enabled or disabled relying on result of condition evaluation. The 'test' field is added to PARAM tag. The 'test' field syntax is similar to /bin/test utility. So the visibility of parameter can depend on previous PARAMs values.
* The shebang is implemented. The shebang is implemented for the command's ACTION. So the script can be executed using different scripting languages.
* The --dry-run (-d) option is implemented for the clish utility. The ACTION will not be actually executed. For debug purposes.
* The --background (-b) option is implemented in clish utility. It means non-interactive/interactive mode of shell execution. The corresponding internal variable ${__interactive} can be used in ACTION script.
* The another additional command line options for the clish utility and konfd daemon were implemented.
* The XMLs and XML schema were fixed and validated.
* Bugfix.

Thanks to lff.frm, Rahul Panwar, my co-workers and others for the bug reporting. Thanks lff.frm for klish specific XML examples.

Wednesday, October 27, 2010

The shebang is implemented.

The shebang is implemented for the command's ACTION. So the script can be executed using different scripting languages. The example with the perl as a script interpreter:

<COMMAND ...>
        ...
        <ACTION shebang="/usr/bin/perl -w">
                print "Hello world\n";
        </ACTION>
</COMMAND>

Thursday, October 21, 2010

The conditional PARAMs is implemented

The PARAM can be enabled or disabled relying on result of condition evaluation. The 'test' field is added to PARAM tag. The 'test' field syntax is similar to /bin/test utility. So the visibility of parameter can depend  on previous PARAMs values.

The example:
...
                <PARAM name="proto"
                        help="Protocol to use for the ping"
                        optional="true"
                        mode="switch"
                        ptype="STRING">
                        <PARAM name="ip"
                                help="Send ICMP IPv4 messages to network hosts"
                                mode="subcommand"
                                ptype="SUBCOMMAND"/>
                        <PARAM name="ipv6"
                                help="Send ICMP IPv6 messages to network hosts"
                                mode="subcommand"
                                ptype="SUBCOMMAND"/>
                        <PARAM name="arp"
                                help="Send ICMP IPv6 messages to network hosts"
                                mode="subcommand"
                                ptype="SUBCOMMAND"/>
                </PARAM>

                <PARAM name="resolve"
                        help="Resolve names"
                        ptype="SUBCOMMAND"
                        mode="subcommand"
                        optional="true"
                        test="${proto} = ip -o ${proto} = ipv6"/>
...

Tuesday, October 12, 2010

The konf is client to communicate to konfd daemon

The konf utility has been developed. It's a client to communicate konfd configuration daemon. It can add new entries, remove entries and get the current configuration. The konf utility is available via subversion.

Thursday, October 7, 2010

The klish specific XML examples is added

The KLISH specific XML examples is added to the source tree. See the xml-examples/klish. The examples directory structure is rather complex so see the http://code.google.com/p/klish/wiki/klish_examples for details. The source tree with examples is available via subversion.

Wednesday, October 6, 2010

The bugfix release klish-1.2.1 is out.

The bugfix release klish-1.2.1 is out.

Changes:

  • Fixed bug in 'dump' operation of CONFIG tag;
  • The konfd supports the quoted strings. The parameters with spaces will be automatically quoted while expanding the internal variables ${__line} and ${__params}.

Tuesday, October 5, 2010

The klish-1.2.0 is out.

The klish-1.2.0 is out.

Changes:

  • The CONFIG's pattern field bacame a regexp;
  • The order lists (sequences) was implemented in konfd. The entries can save their order and have a sequence number. The sequence field in CONFIG tag;
  • The entries of konfd can be non-unique. The unique field in CONFIG tag;
  • The prefixes of NAMESPACE is regexp now and can have arbitrary values. It can be a sequence number for sequences;
  • The several subcommands can have the same displayable values. The names for internal variables must be different. See the PARAM's value field;
  • Strict args check. The args is not available if no args field in COMMAND tag;
  • Each command can restore its depth (nested views). The restore field in VIEW tag;
  • Implements clish_nested_up embedded function to change view to the view with depth = current depth -1. Can be used in ACTION builtin field;
  • The internal variables like ${cmd} were renamed to ${__cmd};
  • The __cmd, __full_cmd, __line, __params, __prefix, prefix<num>, __cur_depth, __cur_pwd internal variables were implemented;
  • The PARAM can be hidden. The hidden parameters will be not included into __line, __params. But it can be used by their names. The hidden field in PARAM tag;
  • The API functions to execute C-strings as a klish commands without threads;
  • Many minor changes;
  • Bugfix.

Thursday, September 30, 2010

The news engine is available for klish project.

The news engine is available for klish project. It hosted as a blog on http://klish-cli.blogspot.com