<?xml version="1.0" encoding="UTF-8"?>
<CLISH_MODULE xmlns="http://clish.sourceforge.net/XMLSchema"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://clish.sourceforge.net/XMLSchema
                     http://clish.sourceforge.net/XMLSchema/clish.xsd">
    <OVERVIEW>
CONTEXT SENSITIVE HELP
[?] - Display context sensitive help. This is either a list of possible
      command completions with summaries, or the full syntax of the
      current command. A subsequent repeat of this key, when a command
      has been resolved, will display a detailed reference.

AUTO-COMPLETION
The following keys both perform auto-completion for the current command line.
If the command prefix is not unique then the bell will ring and a subsequent
repeat of the key will display possible completions.

[enter] - Auto-completes, syntax-checks then executes a command. If there is
          a syntax error then offending part of the command line will be
          highlighted and explained.

[space] - Auto-completes, or if the command is already resolved inserts a space.

MOVEMENT KEYS
[CTRL-A] - Move to the start of the line
[CTRL-E] - Move to the end of the line.
[up]     - Move to the previous command line held in history.
[down]   - Move to the next command line held in history.
[left]   - Move the insertion point left one character.
[right]  - Move the insertion point right one character.

DELETION KEYS
[CTRL-C]    - Delete and abort the current line
[CTRL-D]    - Delete the character to the right on the insertion point.
[CTRL-K]    - Delete all the characters to the right of the insertion point.
[CTRL-W]    - Delete the word before the insertion point.
[CTRL-U]    - Delete the whole line.
[backspace] - Delete the character to the left of the insertion point.

ESCAPE SEQUENCES
!!  - Substitute the the last command line.
!N  - Substitute the Nth command line (absolute as per 'history' command)
!-N - Substitute the command line entered N lines before (relative)
    </OVERVIEW>

    <STARTUP view="root">
        <DETAIL>
Welcome to a sample CLISH/KLISH shell.
WARNING: Authorised Access Only
        </DETAIL>
        <ACTION>echo "You are `whoami`. It is `date`"</ACTION>
    </STARTUP>

    <VIEW name="root"
          prompt="clish&gt; ">

        <COMMAND name="exit"
                 help="Exit from the CLI"
                 lock="false">
            <ACTION builtin="clish_close"/>
        </COMMAND>

        <COMMAND name="!"
                 help="Comments"
                 args="comment"
                 args_help="ignored comment text">
            <ACTION builtin="clish_nop"/>
        </COMMAND>

        <COMMAND name="help"
                 help="Show help overview">
            <ACTION builtin="clish_overview"/>
        </COMMAND>

        <PTYPE name="TIME_HHMMSS"
            pattern="(([0-1][0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9])"
              help="HH:MM:SS using 24 hour clock"/>
        <PTYPE name="TZ_OFFSET_HR"
             method="integer"
            pattern="-12..12"
               help="Time offset from UTC"/>
        <PTYPE name="DAY_MONTH"
             method="integer"
            pattern="0..31"
               help="Calendar day of month"/>
        <PTYPE name="MONTH_NAME"
             method="select"
            pattern="January(1) February(2) March(3) April(4) May(5) June(6) July(7) August(8) September(9) October(10) November(11) December(12)"
               help="Month of the year"/>
        <PTYPE name="TZ_NAME"
             method="select"
            pattern="GMT(GreenwichMeanTime) PST(PacificStandardTime) EST(EasternStandardTime)"
               help="Timezone Name" />
        <PTYPE name="YYYY_YEAR"
             method="integer"
            pattern="1993..2035"
               help="Year"/>

        <COMMAND name="clock"
                 help="some utility commands for time related details"/>

        <COMMAND name="clock set"
                 help="Set the time and date">
            <PARAM name="time"
                   help="Current time"
                   ptype="TIME_HHMMSS"/>
            <PARAM name="day"
                   help="Day of the month"
                   ptype="DAY_MONTH"/>
            <PARAM name="month"
                   help="Month of year"
                   ptype="MONTH_NAME"/>
            <PARAM name="year"
                   help="Year"
                   ptype="YYYY_YEAR"/>
            <ACTION>echo SET-TIME time:${time} day:${day} month:${month} year:${year}</ACTION>
        </COMMAND>

        <COMMAND name="clock timezone"
                 help="Set the timezone">
            <PARAM name="zone"
                   help="The time zone"
                   ptype="TZ_NAME"/>
            <PARAM name="hours"
                   help="The offset from the UTC"
                   ptype="TZ_OFFSET_HR"/>
            <ACTION>echo TIMEZONE zone: ${zone} hours:${hours}</ACTION>
        </COMMAND>

    </VIEW>
</CLISH_MODULE>
