[comp.newprod] MENU for Unix

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)