dialog - Display dialog boxes in shell script (version 0.3) =========================================================== This is a program that will enable you to present a variety of questions or display messages using dialog boxes from a shell script. Currently, these types of dialog boxes are implemented: yes/no box, menu box, input box, message box, text box, info box, checklist box. The idea of writing this program came from the fact that most questions asked in a shell script (and many interactive programs as well) can be classified into these few types: 1) One that requires the user to answer either yes or no. 2) One that presents a number of options for the user to choose. 3) One that requires the user to input a string. 4) One that displays a message and optionally wait for a key press before continuing. 5) One that presents a list of options that can be turned on or off. The program 'dialog' can, say for example, be called in a shell script to present the first type of questions like this: if dialog --yesno then ... fi e.g. if dialog --yesno "Do you want to continue?" 7 51 then echo "Continuing..." else echo "Aborting..." fi I've included a sample shell script for each type of boxes in the directory samples. The program requires ncurses to compile. Running 'dialog' without arguments will display the usage. FEATURES -------- * Friendly dialog box interface with buttons, etc. * Auto wrap around of question text if it's too long to fit on one line. * "\n" can be inserted in question text to control line breaking explicitly. The real newline character '\n' can also be used. * run-time configruation of color settings and other options using a configuration file. WHAT'S NEW SINCE VERSION 0.21? ------------------------------ * some changes for faster screen update. * much more flexible color settings. Can use all 16 colors (8 normal, 8 highlight) of the Linux console. * added run-time configuration using configuration file. * some minor bug fixes and cleanups for menubox, checklist and textbox. * added a man page. * some changes for easier porting to other Unix systems (tested on Ultrix, SunOS and HPUX) INSTALLATION ------------ 1. cd ./src 2. Go to step 3 if your system has ncurses (e.g. Linux). Edit Makefile and remove -DHAVE_NCURSES from DEFS. Also remove rc.c from SRCS and rc.o from OBJS. Change LIBS as appropriate (Usually, it should be '-lcurses -ltermcap'). Go to step 6. 3. Edit Makefile and remove -DBROKEN_WSCRL from DEFS if you are using ncurses 1.8.3 or newer. Menu scrolling should be faster. DON'T REMOVE IT IF YOU ARE NOT USING AT LEAST VERSION 1.8.3 OF NCURSES. 4. Edit dialog.h and change USE_SHADOW to FALSE if you don't want shadowed dialog boxes. Also change USE_COLORS to FALSE if you don't want colors. Note that 'dialog' will check if the terminal supports colors, and will use mono settings if it doesn't, so USE_COLORS won't do any harm even if you have a mono display. Also note that USE_SHADOW implies USE_COLORS. These two options can be changed at run-time using the run-time configuration file (see below). 5. Edit colors.h to change default color definitions if you don't like the defaults. These are only compiled in defaults, you can change them at run-time using the run-time configuration file. 6. 'make depend; make install' will compile and install the binaries in /usr/local/bin (change BINDIR in Makefile if you want to install elsewhere). 7. 'make install.man' will install the man page to /usr/local/man (change MANDIR in Makefile if you want to install elsewhere). 8. You can then try the sample shell scripts in the samples directory (make sure the environment variable DIALOG is not set, the scripts use it to find the dialog binary, if it's not set, "../src/dialog" will be used). 9. Don't forget to mail me (mail address at end of this file) if you find any bugs, have some good color settings to contribute or just want to tell me that you like it, Don't mail me if you don't like it :-) RUN-TIME CONFIGURATION ---------------------- 1. Create a sample configuration file by typing: "dialog --create-rc " 2. At start, 'dialog' determines the settings to use as follows: a) if environment variable DIALOGRC is set, it's value determines the name of the configuration file. b) if the file in (a) can't be found, use the file $HOME/.dialogrc as the configuration file. c) if the file in (b) can't be found, use compiled in defaults. 3. Edit the sample configuration file and copy it to some place that 'dialog' can find, as stated in step 2 above. Comments and bug reports welcome. - Savio Lam (lam836@cs.cuhk.hk)