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.