Index: nutchez-0.2/src/test/add_hosts
===================================================================
--- nutchez-0.2/src/test/add_hosts	(revision 162)
+++ nutchez-0.2/src/test/add_hosts	(revision 162)
@@ -0,0 +1,30 @@
+#!/bin/bash
+# Program:
+#   Add nutch_nodes to /etc/hosts (for nutchez management interface).
+#   $1=/home/nutchuser/nutch_nodes
+#   $2=/etc/hosts
+# Author: 
+#   Waue, Shunfa, Rock {waue, shunfa, rock}@nchc.org.tw
+# Version:
+#    1.0
+# History:
+#   2010/06/07  Rock    First release (1.0)
+
+IPs=$(cat $1 | awk '{print $1}')
+
+for ip_addr in $(echo $IPs)
+do
+    jude=0
+    cat $2 | grep ${ip_addr} || jude=1
+
+    if [ $jude == 0 ]; then
+# 若有的話，直接取代    
+    change_line=$(cat -n $2 | grep ${ip_addr} | awk '{print $1}')
+    hostname=$(cat $1 | grep $ip_addr | awk '{print $2}')
+    sed -i "${change_line}c $ip_addr   $hostname" $2
+    else
+# 若沒有，直接新增
+    hostname=$(cat $1 | grep $ip_addr | awk '{print $2}')
+    sed -i "\$a $ip_addr   $hostname" $2 
+    fi
+done
Index: nutchez-0.2/src/test/duplicate_del
===================================================================
--- nutchez-0.2/src/test/duplicate_del	(revision 162)
+++ nutchez-0.2/src/test/duplicate_del	(revision 162)
@@ -0,0 +1,40 @@
+#!/bin/bash
+# Program:
+#   Delete duplicating ip $ hostname in file (for nutchez management interface).
+# Author: 
+#   Waue, Shunfa, Rock {waue, shunfa, rock}@nchc.org.tw
+# Version:
+#    1.0
+# History:
+#   2010/06/07  Rock    First release (1.0)
+
+# Delete duplicating ip addresss in file
+IPs=$(cat $1 | grep -v 'ip6' | grep -v '#' | grep -v '^$' | awk '{print $1}')
+
+for ip_add in $(echo $IPs)
+do
+    ip_nu=$(cat -n $1 | grep $ip_add | awk '{print $1}')
+    ip_count=$(echo $ip_nu | wc -w)
+  
+    for (( i=1; i<${ip_count}; i++ ))
+    do
+        del_line=$(echo $ip_nu | cut -d " " -f${i})
+        sed -i "${del_line}d" $1
+    done
+done
+  
+
+# Dlete duplicating hostname in file
+hostnames=$(cat $1 | grep -v ip6 | grep -v '#' | grep -v '^$' |awk '{print $2}')
+for host in $(echo $hostnames)
+do
+    # line numbers
+    host_nu=$(cat -n $1 | grep $host | awk '{print $1}')
+    host_count=$(echo $host_nu | wc -w)
+  
+    for (( i=1; i<${host_count}; i++ ))
+    do
+        del_line=$(echo $host_nu | cut -d " " -f${i})
+        sed -i "${del_line}d" $1
+    done                                                                                                                                                             
+done
Index: nutchez-0.2/src/test/nutchez
===================================================================
--- nutchez-0.2/src/test/nutchez	(revision 162)
+++ nutchez-0.2/src/test/nutchez	(revision 162)
@@ -0,0 +1,185 @@
+#!/bin/bash
+# Program:
+#   NutchEz management interface
+# Author: 
+#   Waue, Shunfa, Rock {waue, shunfa, rock}@nchc.org.tw
+# Version:
+#    1.0
+# History:
+#   2010/06/07  Rock    First release (1.0)
+
+# Variables Declaration #
+DIALOG=dialog
+main_choice=
+#LIST_Option="off"
+
+# Functions Declaration #
+## Prepare Check  ##
+function prepare_check(){ 
+if [ ! -e /home/nutchuser/nutch_nodes ]; then
+    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "nutch_nodes Files:" \
+    --msgbox "Fail: Don't find /home/nutchuser/nutch_nodes!!!" 10 40
+    exit
+fi
+
+$DIALOG --clear --defaultno --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "/etc/host Update" \
+    --yesno "Do you want to update /etc/hosts!!!" 6 40
+
+ if [ "$?" == "0" ]; then
+    ./duplicate_del /home/nutchuser/nutch_nodes
+    echo -e "\nPlz input root password to modify /etc/hosts !!!"
+    su root -c "./duplicate_del /etc/hosts"
+    su root -c "./add_hosts /home/nutchuser/nutch_nodes /etc/hosts"
+ fi
+
+}
+
+## Main Menu
+function main_menu(){
+main_choice="/tmp/main_choice"
+
+$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" \
+    --title "management options" \
+        --menu "Plz choose: " 15 55 5 \
+        "cluster_setup" "Setup your datanode & tasknode" \
+        "tomcat_switch" "Start/Stop/Restart Tomcat" \
+        "tomcat_port" "Change Tomcat port" \
+        "lang_switch" "Change language" \
+        "exit" "Exit" 2>$main_choice
+}
+
+## Cluster Setup (datanode & tasknode) ##
+function cluster_setup(){
+
+node_list=$(cat /home/nutchuser/nutch_nodes | awk '{print $1}')
+#echo -e $node_list
+#read
+
+#dataNodes=$($DIALOG --clear  --backtitle "= [NutchEz Management Interface] ~by NCHC  = " --title "datanode & tasknode setup" \
+#    --checklist "datanode & tasknode choose: " 15 55 7 $(cat /home/nutchuser/nutch_nodes | awk '{print $1 "\t" $2 "\t" "off" }'))
+#echo $dataNodes
+clusterSetup="/tmp/clusterSetup"
+$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Datanode & Tasktracker Setup" \
+    --menu "Plz choose: " 10 65 3 \
+    "start" "Start all datanodes & taskcrackers in cluster" \
+    "stop" "Stop all datanodes & taskcrackers in cluster" \
+    "exit" "Exit" 2>$clusterSetup
+
+#echo -e "$clusterSetup"  
+
+if [ "$(cat $clusterSetup)" == "start" ]; then
+    echo "/opt/nutchez/nutch/bin/hadoop-daemon.sh start datanode"
+    echo "/opt/nutchez/nutch/bin/hadoop-daemon.sh start tasktracke"
+    /opt/nutchez/nutch/bin/hadoop-daemon.sh start datanode
+    /opt/nutchez/nutch/bin/hadoop-daemon.sh start tasktracker 
+    for node in $(echo $node_list)
+    do
+        echo -e "ssh $node -c /opt/nutchez/nutch/bin/hadoop-daemon.sh start datanode"
+#        ssh $node -c "/opt/nutchez/nutch/bin/hadoop-daemon.sh start datanode"
+        echo -e "ssh $node -c /opt/nutchez/nutch/bin/hadoop-daemon.sh start tasktracker"
+#        ssh $node -c "/opt/nutchez/nutch/bin/hadoop-daemon.sh start tasktracker"
+    done
+elif [ "$(cat $clusterSetup)" == "stop" ]; then
+    echo "/opt/nutchez/nutch/bin/hadoop-daemon.sh stop datanode"
+    echo "/opt/nutchez/nutch/bin/hadoop-daemon.sh stop tasktracker"
+#   /opt/nutchez/nutch/bin/hadoop-daemon.sh stop datanode
+#   /opt/nutchez/nutch/bin/hadoop-daemon.sh stop tasktracker
+    for node in $(echo $node_list)
+    do
+        echo -e "ssh $node -c /opt/nutchez/nutch/bin/hadoop-daemon.sh stop datanode"
+#       ssh $node -c "/opt/nutchez/nutch/bin/hadoop-daemon.sh stop datanode"
+        echo -e "ssh $node -c /opt/nutchez/nutch/bin/hadoop-daemon.sh stop tasktracker"
+#       ssh $node -c "/opt/nutchez/nutch/bin/hadoop-daemon.sh stop tasktracker"
+    done
+else
+    exit 0
+fi
+}
+
+## Tomcat Severice start/stop/restart  ##
+function tomcat_switch(){
+pid_tc=$(ps axw -eo pid,command | grep "catalina" | grep "java" | grep "start" | awk '{print $1}')
+#echo $pid_tc
+#read
+if [ -n "$pid_tc" ]; then
+    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Tomcat Status" \
+        --msgbox "Tomcat is runing in this system!!!" 7 50
+else
+    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Tomcat Status" \
+        --msgbox "Tomcat is not running in this system!!!" 7 50
+fi
+tomcatSwitch="/tmp/tomcatSwitch"
+$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Tomcat Service Options" \
+    --menu "Plz choose: " 15 55 4 \
+        "start" "Start tomcat" \
+        "stop" "Stop tomcat" \
+        "restart" "Restart tomcat" \
+        "exit" "Exit" 2>$tomcatSwitch
+
+if [ "$(cat $tomcatSwitch)" == "start" ]; then
+    echo "/opt/nutchez/tomcat/bin/startup.sh"
+    /opt/nutchez/tomcat/bin/startup.sh
+elif [ "$(cat $tomcatSwitch)" == "stop" ]; then
+    echo "/opt/nutchez/tomcat/bin/shutdown.sh"
+    /opt/nutchez/tomcat/bin/shutdown.sh
+elif [ "$(cat $tomcatSwitch)" == "restart" ]; then
+    echo "/opt/nutchez/tomcat/bin/restart.sh"
+    /opt/nutchez/tomcat/bin/shutdown.sh
+    /opt/nutchez/tomcat/bin/startup.sh
+else
+    exit 0
+fi
+}
+
+##  Tomcat Port change ##
+function tomcat_port(){
+
+if [ ! -e /opt/nutchez/tomcat/conf/server.xml ]; then
+    $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Tomcat Servel.xml" \
+        --msgbox "Fial: Don't find /opt/nutchez/tomcat/conf/server.xml !!!" 10 50
+    exit
+fi
+tomcatPort="/tmp/tomcatPort"
+$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC  = " --title "Tomcat Port Change" \
+    --inputbox "Plz input port number for tomcat (default is 8080)" 10 55 2>$tomcatPort
+
+if [ -z $(cat $tomcatPort) ]; then
+    exit
+else
+    modify_line_nu=$(cat -n /opt/nutchez/tomcat/conf/server.xml | grep -v SSL | grep 'HTTP/1.1' | grep '<Connector' | awk '{print $1}')
+    sed -i "${modify_line_nu}c <Connector port="$tomcatPort" protocol="HTTP/1.1"" /opt/nutchez/tomcat/conf/server.xml
+fi
+}
+
+
+## Language Change  ##
+function lang_switch(){
+echo -e "lang_switch"
+langSwitch="/tmp/langSwitch"
+$DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC  =" --title "Language Change" \
+    --menu "Plz choose: " 15 55 3 \
+    "English" "English" \
+    "Chinese" "Chinese" 2>$langSwitch
+#
+echo "source $(cat $langSwitch)"
+}
+
+
+# Main Code
+if [ $USER != "nutchuser" ]; then
+    echo -e "\nYour identify is not nutchuser, plz change to \"nutchuser\" !!!"
+    exit
+fi
+
+prepare_check
+main_menu
+case $(cat $main_choice) in
+    "cluster_setup")
+        cluster_setup;;
+    "tomcat_switch")
+        tomcat_switch;;
+    "tomcat_port")
+        tomcat_port;;
+    "lang_switch")
+        lang_switch;;
+esac
