Added the ncurses-style GUI.
diff --git a/ltpmenu b/ltpmenu
new file mode 100755
index 0000000..fa73401
--- /dev/null
+++ b/ltpmenu
@@ -0,0 +1,413 @@
+################################################################################
+##                                                                            ##
+## Copyright (c) International Business Machines  Corp., 2001                 ##
+##                                                                            ##
+## This program is free software;  you can redistribute it and#or modify      ##
+## it under the terms of the GNU General Public License as published by       ##
+## the Free Software Foundation; either version 2 of the License, or          ##
+## (at your option) any later version.                                        ##
+##                                                                            ##
+## This program is distributed in the hope that it will be useful, but        ##
+## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
+## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
+## for more details.                                                          ##
+##                                                                            ##
+## You should have received a copy of the GNU General Public License          ##
+## along with this program;  if not, write to the Free Software               ##
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
+##                                                                            ##
+################################################################################
+#
+# File:        runltp
+#
+# Description: This program is a Graphical User Interface (GUI) 
+#              Control Centre for LTP. The Control Centre provides 
+#              functionality to Compile, Execute and View Results of
+#              LTP test cases.
+#              
+# Author:      Manoj Iyer - manjo@mail.utexas.edu
+#
+# Thanks:      Jim Choate - For suggesting the use of dialog command.
+#
+# History:     March 26 2003 - Created.
+#
+#	       March 28 2003 - Removed gauges and put make commands in foreground.
+#	                     Robbie Williamson - robbiew@us.ibm.com
+#
+#	       March 31 2003 - Made scenario menu creation dynamic and code 
+#                              to pull the test descriptions from the scenario files.
+#                            Robbie Williamson - robbiew@us.ibm.com
+#
+#! /bin/bash
+
+# Function:    cleanup
+#
+# Description: Remove all temporary files created by this program. Cleanup 
+#              always called on program exit.
+#
+# Input:       NONE
+#
+# Output:      NONE
+cleanup()
+{
+    rm -f /tmp/runltp.*
+}
+
+
+# Function:    display_info_msg 
+#
+# Description: Displays informational messages window. This window may
+#              may be used to display information like errors, instructions
+#              etc to the user. The window is dismissed when the user hits
+#              the [ENTER] key.
+#
+# Input:       $1 - Title the needs to be displayed on the window. 
+#                   eg: ERROR: Compiling LTP
+#              $2 - Message text.
+#
+# Output:      Information message window.
+display_info_msg()
+{
+    dialog --backtitle "Linux Test Project Control Centre" \
+           --title " $1 " \
+           --msgbox " $2 " 10 70 
+    return $?
+}
+
+
+# Function:    compile_ltp
+#
+# Description: Checks for commands that are pre-reqs for compiling and 
+#              installing LTP. It displays a confirmation window inorder to 
+#              confirm the choice made by the user.
+#
+# Calls:       do_make_clean()
+#              do_make()
+#              do_make_install()
+#
+# Input:       NONE
+#
+# Output:      Confirmation window.
+compile_ltp()
+{
+    dialog --backtitle "Linux Test Project Control Centre" \
+           --title "Compiling LTP testsuite"\
+           --yesno "This will compile all the test cases in\
+                    LTP test suite and place the executables\
+                    in testcases/bin directory. Do\
+                    you wish to continue ??" 7 70 || RC=$?
+    case $RC in
+        0) \
+            for cmd in cc make lex ;
+            do \
+                which $cmd &>/tmp/runltp.err.$$ ;
+                if [ $? -ne 0 ] ;
+                    then \
+                        display_info_msg "Compiling LTP testsuite" \
+                                 "ERROR: command $cmd not found, $cmd is\
+                                  required to compile LTP test cases. Please\
+                                  install $cmd or export PATH correctly before\
+                                  running this program" ;
+                    return ;
+                fi ;
+            done ;
+            make clean;
+	    if [ $? -ne 0 ];then
+              echo "ERROR in \'make clean\' - exiting."
+	      exit
+	    fi 
+            make ;
+	    if [ $? -ne 0 ];then
+              echo "ERROR in \'make all\' - exiting."
+	      exit
+	    fi 
+            make install ;
+	    if [ $? -ne 0 ];then
+              echo "ERROR in \'make install\' - exiting."
+	      exit
+	    fi 
+            return ;;
+
+        1)  return ;;
+
+        255) return ;;
+    esac
+}
+
+
+# Function:    disp_ltpres
+#
+# Description: The results generated after the ltp execution located under
+#              ltp-mmddyy/results/ directory in a text (ASCII) file called 
+#              results.todaysdate. This function displays this file in a
+#              window. If the results file does not exit it displays an 
+#              info message window notifing the user that LTP test cases
+#              need to be executed inorder to view results.
+#
+# Input:       ltp-mmddyy/results/results.todaysdate
+#
+# Output:      Window displaying results of testcases that were executed.
+disp_ltpres()
+{
+    RC=0
+    if ! [ -f ./results/results.$(date -I) ]
+    then
+        display_info_msg "LTP Test Results" \
+            "Sorry cannot display test results, you have to run \
+             the test cases  first. Please choose the Execute LTP \
+             option in the Main Menu."
+        return
+    fi
+
+    dialog --backtitle "Linux Test Project Control Centre" \
+           --title "LTP Test Results. Scroll [UP] [DOWN]/[PGUP] [PGDN]" \
+           --textbox ./results/results.$(date -I) 17 70 
+
+    dialog --backtitle "Linux Test Project Control Centre" \
+           --title "LTP Test Results." \
+           --yesno "Would you like to share these results with the LTP \
+                    community by posting it to the LTP results mailing list?" \
+                    7 70 || RC=$?
+    case $RC in 
+        0) \
+            mail ltp-results@lists.sourceforge.net < \
+                    ./results/results.$(date -I) ;
+            return ;;
+
+        1) return ;;
+
+        255) return ;;
+    esac
+    return
+}
+
+
+# Function:    exectest_screenout
+# 
+# Description: Execute tests by calling runalltests.sh, display test status 
+#              in a window.
+#
+# Input:       $1 - Flag to be passed to runalltests.sh inorder to run 
+#                   networking tests.
+# 
+# Output:      messages printed by testcases.
+exectest_screenout()
+{
+    RC=0    # setting return code to 0, to loop in while
+
+    # remove old results file
+    rm ./results/results.$(date -I) &>/dev/null
+ 
+    # execute runalltests.sh with user defined command file.
+    ./runalltests.sh -q -p $1 -l results.$(date -I) \
+	-f /tmp/runltp.test.list.$$  
+    sleep 2
+    return
+}
+
+
+# Function:    execute_ltp
+#
+# Description: This function provides a menu of testcases that can be
+#              selected for execution. If networking tests are selected,
+#              they require a remote machine and remote machines root
+#              users password. The user will be prompted to enter this 
+#              information in a text box.
+#              The function checks to see if the ltp-mmddyy/testcases/bin
+#              directory was created, this directory is created when the 
+#              testcases are compiled and installed, if it is not found
+#              an info message window will notify the user that LTP needs to
+#              be compiled before tests can be executed.
+#              This function creates the senatrio file based on the users
+#              choice of testcases and uses the runalltests.sh script to 
+#              execute these tests.
+#              The messages printed by the testcases are displayed on this 
+#              terminal.
+#
+# Input:       Users selection of testcases; scenario file.
+#              
+# Output:      Test selection window, Message window, 
+#              information message window
+execute_ltp()
+{
+    RC=0
+    host_name=" "
+    rhost_passwd=" "
+    run_net_test=" "    
+
+    if ! [ -d ./testcases/bin ] 
+    then 
+	display_info_msg "Executing LTP testcases" \
+	    "The testcases must to be compiled inorder\
+       to execute them. Returning to main menu. \
+       Please select the Compile option." 
+	return
+    fi 
+
+    LIST=$(for i in `ls -1 -A -I "CVS" runtest`; do echo -n "$i "; j=$(head -n1 runtest/$i | cut -d: -f2|sed s/" "/_/g); echo -n "$j off "; done) 
+    dialog --backtitle "Linux Test Project Control Centre"\
+           --title "Execute LTP" --clear\
+           --checklist "Select [SPACEBAR] tests to run" 20 80 5 \
+    	    $LIST \
+            2>/tmp/runltp.choice.$$ || RC=$?
+    size=`wc -m /tmp/runltp.choice.$$|awk '{print $1}'` 
+    if [ $size -eq 0 ];then
+      tst_choice=$(echo "NULL")
+    else
+      tst_choice=$(cat /tmp/runltp.choice.$$)
+    fi
+    if [[ $tst_choice == NULL ]];then
+      RC=1
+    fi
+    case $RC in 
+        0)    \
+            for i in $tst_choice ;
+            do \
+                cat ./runtest/$(echo $i | sed -e 's/"//g') \
+                   >> /tmp/runltp.test.list.$$ ;
+                if [[ $(echo $i | sed -e 's/"//g') == "tcp_cmds" || \
+		      $(echo $i | sed -e 's/"//g') == "tcp_cmds_noexpect" || \
+                      $(echo $i | sed -e 's/"//g') == "multicast" || \
+                      $(echo $i | sed -e 's/"//g') == "ipv6" || \
+                      $(echo $i | sed -e 's/"//g') == "ipv6_noexpect" || \
+                      $(echo $i | sed -e 's/"//g') == "nfs" || \
+                      $(echo $i | sed -e 's/"//g') == "multicast" ]] ;
+                then \
+                    run_net_test=" -N " ;
+                fi ;
+                                       
+            done ;
+            if ! [ -z $run_net_test ] ;
+            then \
+                dialog --backtitle "Linux Test Project Control Centre"\
+                       --title "Execute LTP test cases" \
+                       --clear \
+                       --inputbox "You have chosen to execute testcases \
+                                  that require a Remote Machine. \
+                                  Please enter the fully qualified host \
+                                  name" 17 80 $(hostname --long) \
+                                  2>/tmp/runltp.out.$$ ;
+                host_name=$(cat /tmp/runltp.out.$$ | awk '{print $1}') ;
+                unset $RHOST ;
+                RHOST=$host_name ;
+                export RHOST;
+                
+                dialog --backtitle "Linux Test Project Control Centre"\
+                       --title "Execute LTP test cases" \
+                       --clear \
+                       --inputbox " Please enter the root password \
+                                     of this remote machine" 17 80 \
+                        2>/tmp/runltp.out.$$ ;
+                rhost_passwd=$(cat /tmp/runltp.out.$$ | awk '{print $1}') ;
+
+                PASSWD=$rhost_passwd ;
+                export PASSWD;
+            fi ;
+
+            if ! [ -d ./testcases/bin ] ;
+            then \
+                display_info_msg "Executing LTP testcases" \
+                    "The testcases must to be compiled inorder\
+                     to execute them. Returning to main menu. \
+                     Please select the Compile option." ;
+                return ;
+            fi ;
+        
+            dialog --clear ;
+	
+            exectest_screenout $run_net_test ;
+
+            return ;;
+        1)    \
+            # echo "Cancel pressed" ;
+            return ;;
+        255)    \
+            # echo "ESC pressed" ;
+            return ;;
+    esac
+}
+
+
+# Function:    about_ltpcc
+#
+# Description: This function displays a window containing a brief message
+#              describing this programs functionality, and credits the author.
+# 
+# Input:       NONE 
+#
+# Output:      Message window, description of LTP Control Center.
+about_ltpcc()
+{
+    display_info_msg "About LTP Control Centre" \
+                     "The LTP Control Centre can be used to\
+                     to compile, install and execute\
+                     The Linux Test Project test suite. Written by\
+                     Manoj Iyer <manjo@mail.utexas.edu>"
+    return
+}
+                 
+# Function:    main
+#
+# Description: Displays the main menu to the LTP Control Centre. The menu
+#              provides options to Compile, Execute, and View test execution
+#              results.
+#
+# Calls:       about_ltpcc()      
+#              compile_ltp()
+#              execute_ltp()
+#              disp_ltpres()
+#
+# Input:       NONE
+#
+# Output:      Menu selection of actions to perform.
+
+# Global variables.
+RC=0              # return code from commands and local functions
+mmenu_item=" "
+RHOST=" "
+PASSWD=" "
+
+# call cleanup function on program exit.
+trap "cleanup" 0
+
+
+# wait in a loop until user hits [Cancel] button on the main menu.
+while :
+do
+    RC=0
+    dialog --clear
+    dialog --backtitle "Linux Test Project Control Centre" \
+           --title "Main Menu" \
+           --menu "Move using[UP] [DOWN], Select using [ENTER]" 15 70 4 \
+                  About        "About LTP Control Centre" \
+                  Compile      "Compile LTP testsuite" \
+                  Execute      "Execute LTP testsuite" \
+                  Results      "Display a summary of test results" \
+                  2>/tmp/runltp.mainmenu.$$ || RC=$?
+
+    case $RC in 
+        0) mmenu_item=`cat /tmp/runltp.mainmenu.$$` ;
+           # echo "return code = $RC" ;
+           # echo "MENU ITEM = $mmenu_item" ;
+           case $mmenu_item in
+                About)        about_ltpcc    ;;
+                Compile)      compile_ltp    ;;
+                Execute)      execute_ltp    ;;
+                Results)      disp_ltpres    ;;
+           esac ;;
+
+        1) display_info_msg "Good Bye!" \
+                            "Thank you for using Linux Test Project test suite.\
+                             Please visit our project website \
+                             http://ltp.sourceforge.net \
+                             for latest news on The Linux Test Project. "
+           exit ;;
+
+        255) display_info_msg "Good Bye!" \
+                            "Thank you for using Linux Test Project test suite.\
+                             Please visit our project website\
+                             http://ltp.sourceforge.net for latest news\
+                             on The Linux Test Project. "
+            exit;;
+    esac
+done