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.
Command |
Syntax |
Name |
Description |
cd |
cd [pathname] |
change domain |
sets the current domain to the pathname. If no argument then goes to the root domain |
ls |
ls [-l] [-p] [pathname]* |
list |
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 |
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 |
lp [policy]+ |
list policy |
lists the contents of a policy in XML form |
ln |
ln fromname toname |
link |
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 event/ factory/ shell/ $ ls event colourevent $ event colourevent "red" 45 ... $ var := root/mydom/myobj list. $ root at: "mylist" put: var.