The forms in sushi are simple ascii databases of various fields and options that are shown to the user, to be later processed by a script or exec action item. The form consists of a field type, followed by it's required arguments, and a description of the field. The different field types are listed below. entry A simple entry field. The only argument is the length of the field. req-entry A required entry field. This is the same as the entry field except that the user must enter a value to proceed. escript An escript is an entry field, whose initial value is filled in by a script that is run during the form generation. The Arguments are: max field length, the name of the script to run, and any optional arguments the user wishes to pass to the script. req-escript A required escript field. nescript A no-entry escript. This is the same as an escript, except that the user is not allowed to modify the contents of the field. list A simple list of possible values. The arguments to this is a list of valid choices for the user. req-list A required list. multilist A multilist is the same as a list, except that the user may choose multiple items from the list, instead of only one. blank A blank item. This is useful for providing additional instructions for a particular field. func Calls a function internal to sushi. The function presents a list to the user. The arguments to func is the name of a function (which must be compiled into sushi) and an optional string argument to pass to the function. req-func A required function field. multifunc A function field where the user may make multiple selections. script The script field is a list field, where the list of items is generated by running a script. The script's only output must be a simple list of items, such as 'ls -1' might generate. The arguments are the name of the script to be called (which must reside in the endpoint directory) and any optional arguments to pass the script. req-script A required script field. multiscript A multiple selection list field. noedit An uneditable field. The argument is the value of the field. invis An invisible and uneditable field. The argument is the value of the field. integer An integer field. The arguments are the number of digits, the minimum number, and the maximum number allowed. You may also supply an optional default for the field. req-integer A required integer field. iscript An integer field, whose default is set by the invocation of a script. The arguments are the number of digits, the minimum number, the maximum number, and the name of the script to invoke, followed by any number of arguments to pass to the script. req-iscript A required iscript field. ipv4 A simple entry field for IPV4 address types. The only optional argument is an initial value for the field. req-ipv4 A required IPV4 entry field. This is the same as the IPV4 entry field except that the user must enter a value to proceed. ipv4script An ipv4script is an IPV4 entry field, whose initial value is filled in by a script that is run during the form generation. The arguments are: the name of the script to run, and any optional arguments the user wishes to pass to the script. req-ipv4script A required IPV4 script generated entry field. ipv6 A simple entry field for IPV6 address types. The only optional argument is an initial value for the field. req-ipv6 A required IPV6 entry field. This is the same as the IPV6 entry field except that the user must enter a value to proceed. ipv6script An ipv6script is an IPV6 entry field, whose initial value is filled in by a script that is run during the form generation. The arguments are: the name of the script to run, and any optional arguments the user wishes to pass to the script. req-ipv6script A required IPV6 script generated entry field. If a description consists of the keyword BLANK, no description will be displayed to the user. An example of a simple form: script:script1,audio Install which audio pkg? invis:audio BLANK list:yes,no Are you sure? The field type is allways the first character on the line. It is followed directly by a semicolon, and then the arguments for the field, separated by commas. The description is separated from the field definition by one or more whitespaces, such as tab or space. When the form is processed, its arguments are passed to a script or exec action-item for futher processing. In this example, a script run from the previous form, might receive the following data: $1 = "fooshi-1.3" $2 = "audio" $3 = "yes" $NetBSD: help,v 1.4 2001/06/12 15:17:13 wiz Exp $