Ponder2 Shell

Ponder2 has a built-in shell to allow a user to interact with the SMC using simple commands.

The shell acts in some way similarly to the Unix Bourn Shell, you can move around the domain hierarchy using the change domain (cd) command, you can list things with the ls command etc. etc.

The syntax for shell commands is:

<shellcommand> [<arg>]+  where <command> is an internal command or PonderTalk

You can typically start a shell session by using telnet to the SMC. The default port number is 13570 but this may be changed by using the -port command option:

telnet localhost 13570

Internal Commands

Internal commands are built into the shell and can be used to manipulate the domain structure and to look at managed objects within the system.






cd [pathname]

change domain

sets the current domain to the pathname. If no argument then goes to the root domain


ls [-l] [-p] [pathname]*


lists contents of domains or objects. -l give more detail, -p lists policies applying to a managed object

mkdom, mkdir, md

mkdom pathname

make domain

creates and adds a new domain to the domain hierarchy


event name [arg]*

create event

instantiates an event type and sends it into the system. The name is interpreted as an Event Type relative to the current domain or within the '/event' domain


lp [policy]+

list policy

lists the contents of a policy in XML form


ln fromname toname


includes the fromname managed object in the toname domain

PonderTalk Statements

If the command is not recognised by the shell to be an internal command, the shell assumes that it is PonderTalk and stores up input until it gets a line ending with a full-stop (period). That input is then compiled and executed by the interpreter. PonderTalk variables are maintained for the complete session that the shell is active so a variable can be set and then used at a later time. Note, however that in PonderTalk statements all path names must start with root or a variable, /domain1/domain2 for example is not accepted.

Example usage

$ ls
$ ls event
$ event colourevent "red" 45
$ var := root/mydom/myobj list.
$ root at: "mylist" put: var.

Ponder2Shell (last edited 2008-10-11 14:24:43 by KevinTwidle)