karld@chinet.UUCP (Karl Denninger) (05/29/87)
May 19, 1987
For Immediate Release
MACRO COMPUTER SOLUTIONS, Inc. is proud to announce a new tool in
user-friendliness for Unix (tm) systems. MENU is the answer for those users
on your system who are unwilling (or unable!) to deal with the intricacies
of the Unix operating system. Now your users can enjoy a completely
menu-driven command environment, with the option of a full-page display.
Ideal for use on public access Unix systems, as well as those systems
accessible by customers.
MENU is available NOW for Microport UNIX System V, soon to be available for
other systems and configurations. Call today for more information on
availability for YOUR hardware.
As always, MCS stands behind their products, offering low-cost upgrades for
one full year on all software (free if you perform the transfer via the
phone on your dime). We're ready and willing to serve you -- call anytime!
The man page from the MENU product is reproduced below. Permission is hereby
granted to reproduce or distribute this entire posting as desired.
MENU(1) UNIX 5.0 (Macro Computer Solutions) MENU(1)
NAME
menu - provide a menu-driven command environment for UNIX
SYNOPSIS
menu [menufile]
DESCRIPTION
Menu takes the name of the file specified as "menufile", if
any, and reads it in for use as a menu definition. If the
name does not begin with a "/", then the path "/etc/menus/"
is prepended to the name. If no file is specified on the
command line, then a file called "main" is searched for.
While using the menu system, you may execute any command in
the menu definition by typing the unique portion, in either
upper or lower case, and pressing <Return>. Menu will
execute the appropriate command if it can be determined from
your line. In addition, if the command's definition permits
it, you may pass parameters to the command at the time of
invocation, and some commands will prompt specifically for
parameters.
If "menu" is running as your login shell, signals to the
menu program are ignored. This is done so you don't
accidentally disconnect yourself with ^D, for example. If
not a login shell, then menu will respond to interrupts,
permitting you to exit with your normal 'interrupt' key
(usually either <Delete> or ^C).
USER OPTIONS
The default mode of the program is a text display, with the
menu re-displayed only when the level changes or a user
enters a "null" command.
If the environment variable VERBMENU is defined, then the
menu will always be redisplayed.
If the environment variable EXPMENU (expert) is defined,
then the menu will never be displayed.
If the environment variable CURSMENU (curses) is defined,
then the menu system will use curses to present a full-
screen display. Very nice, but probably not too useful at
slower baud rates; also requires that the maker have
included the "curses" fields in the menu definitions.
(VERBMENU and EXPMENU can be defined as well, but are not
needed and may cause unnecessary re-writing of the screen).
MENU FORMAT
All menu files have the following format:
Page 1 (printed 5/20/87)
MENU(1) UNIX 5.0 (Macro Computer Solutions) MENU(1)
{Prompt}
flags:description:name:command:option/display:r1:c1:r2:c2:wait
Prompt - An ascii string, which is to be displayed at the
end of the menu. This string is only entered on the very
first line of the menu, and is the sole exception to the
line format shown below the "{Prompt}" line.
flags - One or more flags which specifiy actions, must
be specified in the order shown below if there is more than
one letter present.
* - Normal command (pass command and any options
indicated on command line by the user). If an abbreviation
command is typed, all options will be concatenated with the
full command name and that passed to the system for
execution.
C - The "desc" field is a comment, and should be
displayed without any attempt at interpretation. (Note that
if the "desc" field is completely empty TWO blank lines will
be output. A space will cause ONE blank line to be printed).
D - The "desc" field is comment which should only be
displayed if the system is in CURSES mode. If menu is not
using CURSES then this item is ignored.
Q - If this command is executed, it will cause the menu
program to terminate.
X - Invisibility flag, keeps menu from displaying the
command.
N - No parameters are to be passed from the command line.
M - "command" field is actually another menu file to be
replace the current one.
O - An option is present. The "option/display" string is
printed, and a line of input accepted from the user. This
line is appended to the command which has been executed.
desc - An ASCII description of the command. Should fit in 40
characters.
name - What the user must type to execute the command.
command - The actual path to the command, be it a shell
procedure or executable file.
option - An optional string to be displayed if the user
selects this command. If the "O" flag is specified, this
Page 2 (printed 5/20/87)
MENU(1) UNIX 5.0 (Macro Computer Solutions) MENU(1)
string is a prompt, and the system will display it without a
terminating N/L and wait for a response from the user. If
the "O" flag is NOT specified, then the string is simply
displayed, terminated with a N/L.
The following fields are only relavent if CURSMENU is
defined for a user.
r1 - The row number to display the "name" field at.
c1 - The column number to display the "name" field at.
r2 - The row to display the "desc" field at.
c2 - The column to display the "desc" field at.
wait - If this field is a "*", then the system will wait
after executing this command for the user to strike a key. A
beep will be issued if possible to alert the user to the
pause. If the field is blank or not present then the menu
will be immediately re-displayed.
NOTES
The options "Q" and "C" are mutually exclusive, and prohibit
scanning of other options which may be present. Both take
effect immediately.
You may leave a field null (undefined), and even leave off
non-required parts of a line. Be aware, though, that
CURSMENU will behave strangely if you have not defined lines
and columns for the menus (everything will come up in the
top left corner).
INSTALLATION
Menu only needs to run SGID or SUID if you wish to prevent
people from viewing the menu structures. If there is no
requirement for this, then menu can run as a normal program.
In this event, /etc/menus must be "rx" for all.
If you wish to set menu up as a SGID program, it is
recommended that you create a group especially for it. The
/etc/menus directory should then be "rx" for group, and "--
-" for others, this will insure that menu can read the files
but users running under their own UID/GID cannot.
Menu should be placed in /usr/lbin. A compile-time option is
available to change this if needed.
LIMITATIONS
Menus are limited to 100 items each.
If CURSMENU is defined in the environment but the menus have
not been set up for curses use then all items will appear in
Page 3 (printed 5/20/87)
MENU(1) UNIX 5.0 (Macro Computer Solutions) MENU(1)
the top right corner of the screen. Remedy is to undefine
CURSMENU until the administrator can correct the problem.
If CURSMENU is defined but the terminal type you have set
doesn't support the "curses" functions, the results are
undefined. Moral: Test CURSMENU before making menu a login
shell, or you may find yourself unable to sign on!
DIAGNOSTICS
Various complaints if you menu cannot allocate memory for
internal tables, and if required parameter information is
missing or files cannot be found. Should be self-
explanatory.
BUGS
None yet!
AVAILABILITY
Available for SYSV Release 2.0 and up systems as well as
some other Unices. Contact MCS using the infomation below if
you desire to obtain a copy of this utility for your Unix
system.
AUTHOR
Created May 13, 1987 by Karl Denninger @ Macro Computer
Solutions, Inc.
Copyright 1987 Macro Computer Solutions, Inc. & Karl
Denninger. All rights reserved.
Macro Computer Solutions, Inc.
415 S.E. Garfield
Mundelein, IL 60060
(312) 566-8910 (Voice)
Page 4 (printed 5/20/87)
--
Karl Denninger UUCP : ...ihnp4!ddsw1!karl
Macro Computer Solutions Dial : +1 (312) 566-8912 (300-2400)
"Quality systems at a fair price" Voice: +1 (312) 566-8910 (24 hrs)