home *** CD-ROM | disk | FTP | other *** search
/ zipcon.net / www.zipcon.net.tar / www.zipcon.net / pub / linux / install.3dm < prev    next >
Text File  |  2004-05-12  |  21KB  |  737 lines

  1. #!/bin/csh
  2. clear
  3.  
  4. ## Declare variables and default values
  5. #
  6. set default_host   = `hostname`
  7. set default_sender = "root"
  8. set default_rcpt   = "3ware_admin"
  9. set default_port   = "1080"
  10. set default_help   = "/usr/local/doc/3dm"
  11. set default_extlog = "/var/log/3dmExtLog"
  12. #set default_extlog = ""
  13. # The default password is "3ware"
  14. set default_passwd = "OmwmsK8lKk2"
  15. set rebuild_rate = "25"
  16. set file_name  = "/etc/3dmd.conf"
  17. set version = "v1.00.00.025"
  18. set sw1 = ""
  19. set question = "N"
  20.  
  21. ## Check if user is root
  22. if ("`id -u`" != "0") then
  23.     echo ""
  24.     echo "You must be root or have root privilages to install 3dm."
  25.     echo "3dm installation will stop."
  26.     echo ""
  27.     exit 1
  28.     endif
  29.  
  30. ## Check release.
  31. set release = `uname -s`
  32.  
  33. if ($release != "Linux") then
  34.     echo ""
  35.     echo "Only Linux is supported by this script. Your system is running $release"
  36.     echo "The script will now exit."
  37.     exit 1
  38.     endif
  39.  
  40. ## Find what argument was used with install.3dm and set $switch to defined value.
  41. # Declare variable
  42. echo $1 | grep '\-i' >/dev/null
  43. set chk1 = $status
  44. #echo "chk1" $chk1
  45. if ($chk1 == "0") then
  46.     set sw1 = "install"
  47.     endif
  48.  
  49. echo $1 | grep '\-u' >/dev/null
  50. set chk2 = $status
  51. #echo "chk2" $chk2
  52. if ($chk2 == "0") then
  53.     set sw1 = "uninstall"
  54.     endif
  55.  
  56. echo $1 | grep '\-c' >/dev/null
  57. set chk3 = $status
  58. #echo "chk3" $chk3
  59. if ($chk3 == "0") then
  60.     set sw1 = "configure"
  61.     endif
  62.  
  63. #    if ($sw1 == "install" || $sw1 == "configure" || $sw1 == "uninstall") then
  64.  
  65. if ($sw1 == "") then
  66.  
  67.     if ($1 == "--u" || $1 == "uninstall") then
  68.         set sw1 = "uninstall"
  69.  
  70.         else if ($1 == "" || $1 == "--i" || $1 == "install") then
  71.              set sw1 = "install"
  72.  
  73.         else if ($1 == "--c" || $1 == "configure") then
  74.                  set sw1 = "configure"
  75.     
  76.         else
  77.             set sw1 = "help"
  78.             endif
  79.         endif
  80.  
  81. echo ""
  82. echo "3ware 3DM installation, configuration and removal script."
  83. echo "(c) 2001 3ware, Inc. All rights reserved."
  84. echo ""
  85. echo "Script version: "$version
  86.  
  87.  
  88. ## Check for redhat/SuSE release.
  89. #
  90. set distr = "untested"
  91. if ( -e /etc/redhat-release) then
  92.     cat /etc/redhat-release | grep 'Hat' > /dev/null
  93.     if ($status == "0") then
  94.     set distr = "redhat"
  95.         endif
  96.     endif
  97.  
  98. if ( -e /etc/SuSE-release) then
  99.     set distr = "suse"
  100.     endif
  101.  
  102. ## Check to see if user asked for help. If it was then echo list below.
  103. #
  104. if ($sw1 == "help") then
  105.  
  106.  
  107. support:
  108.     clear
  109.     echo "         *********************************************"
  110.     echo "         *   Arguments supported with install.3dm    *"
  111.     echo "         *********************************************"
  112.     echo "The following arguments are supported for use with the Install.3dm script."
  113.     echo ""
  114.     echo "-i or --i or install will install 3dm files and create needed configuration files."
  115.     echo "*** Do not use -i or --i or install when using the 3ware rpm to install 3dm. ***"
  116.     echo ""
  117.     echo "-u or --u or uninstall will remove all 3dm components and configuration files."
  118.     echo ""
  119.     echo "-c or --c or confiure will run the configuration portion of the install script. It will create needed configuration files."
  120.     echo "*** Use the --c or configure argument to configure 3dm or to reconfigure 3dm after using s 3ware rpm. ***"
  121.     echo ""
  122.     echo "*** Any other options will print this screen. ***"
  123.     echo ""
  124.     echo "Example (./install.3dm or ./install.3dm --i or ./install.3dm install) Will install 3dm files and create 3dmd.conf."
  125.     echo "Example (./install.3dm --u or ./install.3dm uninstall) Will uninstall all 3dm components and configuration files."
  126.     echo "Example (./install.3dm --c or ./install.3dm configure) Will run the configuration portion of the script to update/create 3dmd.conf."
  127.     echo ""
  128.     exit 1
  129.     endif
  130.  
  131.  
  132. ## Check if rpm was used for installation.
  133. #
  134. if ($sw1 == "uninstall" || $sw1 == "install" || $sw1 == "configure") then
  135.     if ($sw1 == "install" || $sw1 == "configure") then
  136.         if (-e /etc/3dmd.conf) then
  137.             echo ""
  138.             echo -n "An old 3dmd.conf file was found. Do you want to use the old one? (Y/N) [Y] "
  139.             set question = $<
  140.     
  141.             if ($question == "y" || $question == "") then
  142.                 set question = "Y"
  143.             endif
  144.             endif
  145.     endif
  146.  
  147.     echo ""
  148.     echo "***************************************"
  149.     echo "*** Important RPM related question. ***"
  150.     echo "***************************************"
  151.     echo "* Answer "N" if you are using the install.3dm script to install 3dm."
  152.     echo "  If you answer "N" install.3dm will install all 3dm components."
  153.     echo "* Answer "Y" if RPM was used for installing the driver/3dm software."
  154.     echo "  3ware RPM packages install all 3dm components and only need to have"
  155.     echo "  the configuration portion of this script run." 
  156.     echo ""
  157.     echo -n "Was RPM used to install the Escalade driver and/or 3dm? (Y/N) [N] "
  158.     set rpm = $<
  159.  
  160.     ## Check for install/configure.
  161.     #
  162.     if ($sw1 == "install" || $sw1 == "configure") then
  163.     if ($rpm == "Y" || $rpm == "YES" || $rpm == "Yes" || $rpm == "y" || $rpm == "yes") then
  164.         set help = $default_help
  165.         goto configure
  166.  
  167.     else
  168.  
  169.         ## Figure out where we are
  170.         #
  171.             set install_dir = `pwd`
  172.  
  173.             ## Upack 3dm files into /tmp so we can run this directly from the CD.
  174.             #
  175.             if (-e $install_dir/3dm-lnx.tgz) then
  176.             if (-d /tmp/3ware) then
  177.                     rm -rf /tmp/3ware >& /dev/null
  178.                     endif
  179.  
  180.             mkdir -p /tmp/3ware
  181.             tar zxfp 3dm-lnx.tgz -C /tmp/3ware
  182.             cd /tmp/3ware
  183.  
  184.             else if (-e $install_dir/3dm-lnx.tar.gz) then
  185.                  if (-d /tmp/3ware) then
  186.                  rm -rf /tmp/3ware >& /dev/null
  187.                  endif
  188.                  mkdir -p /tmp/3ware
  189.                  tar zxfp 3dm-lnx.tar.gz -C /tmp/3ware
  190.                  cd /tmp/3ware
  191.  
  192.             else
  193.             echo ""
  194.             echo "3dm-lnx.tgz installation file not in directory. Installation stopping."
  195.             exit 1
  196.             endif
  197.  
  198.         ## Get 3DM version being installed.
  199.         if (-e version.txt) then
  200.             set newver = `cat version.txt | cut -d " " -f3`
  201.             echo ""
  202.             echo "**** 3DM version being installed is: $newver ****"
  203.             echo ""
  204.             endif
  205.  
  206.             ## Check file location is correct.
  207.             if (-d 3dm-lnx )then
  208.             cd 3dm-lnx
  209.             endif
  210.  
  211.         if ($question == "n" || $question == "N") then
  212.                 echo -n "Please enter the location of the help documentation. [$default_help] "
  213.                 set help = $<
  214.                 if ($help == "") then
  215.                 set help = $default_help
  216.                 endif
  217.             endif
  218.  
  219.         goto install
  220.         endif
  221.  
  222.         else if ($sw1 == "uninstall") then
  223.              goto uninstall
  224.         endif
  225.         endif
  226.  
  227.  
  228. uninstall:
  229. if ($sw1 == "uninstall") then
  230.     echo ""
  231.     echo "######################################"
  232.     echo "Checking for 3dm components to remove."
  233.     echo "######################################"
  234.  
  235.     ps -ax | grep '3dmd' | grep -v 'grep' >/dev/null
  236.     if ($status == "0") then
  237.     echo "**** Stopping 3dmd to allow uninstallation. ****"
  238.     if (-e /etc/rc.d/3dm) then
  239.        /etc/rc.d/3dm stop
  240.  
  241.        ## Clean up Symbolic links
  242.        echo -n "Removing 3dm Symbolic links... "
  243.        if ($distr == "redhat") then
  244.         if (`uname -r` == "2.4.2-2" || `uname -r` == "2.4.2-2smp") then
  245.             rm -f /etc/rc.d/rc?.d/*3w-xxxx >& /dev/null
  246.             rm -f /etc/rc.d/rc?.d/*3dm >& /dev/null
  247.         else
  248.             chkconfig --del 3dm
  249.             rm -f /etc/rc.d/rc?.d/*3w-xxxx >& /dev/null
  250.             endif
  251.        else
  252.            rm -f /etc/rc.d/rc?.d/*3w-xxxx >& /dev/null
  253.            rm -f /etc/rc.d/rc?.d/*3dm >& /dev/null
  254.            endif
  255.  
  256.         
  257.        echo "done."
  258.        ## Remove 3dm init script.
  259.        echo -n "Removing /etc/rc.d/3dm... "
  260.        rm -f /etc/rc.d/3dm >& /dev/null
  261.        echo "done."
  262.  
  263.     else if (-e /etc/rc.d/init.d/3dm) then
  264.             /etc/rc.d/init.d/3dm stop
  265.  
  266.         ## Clean up Symbolic links
  267.         echo -n "Removing 3dm Symbolic links... "
  268.         if ($distr == "redhat") then
  269.             if (`uname -r` == "2.4.2-2" || `uname -r` == "2.4.2-2smp") then
  270.                 rm -f /etc/rc.d/rc?.d/*3w-xxxx >& /dev/null
  271.                 rm -f /etc/rc.d/rc?.d/*3dm >& /dev/null
  272.             else
  273.                 chkconfig --del 3dm
  274.                 rm -f /etc/rc.d/rc?.d/*3w-xxxx >& /dev/null
  275.                 endif
  276.         else
  277.             rm -f /etc/rc.d/rc?.d/*3w-xxxx >& /dev/null
  278.             rm -f /etc/rc.d/rc?.d/*3dm >& /dev/null
  279.             endif
  280.  
  281.         echo "done."
  282.         ## Remove 3dm init script.
  283.             echo -n "Removing /etc/rc.d/init.d/3dm... "
  284.            rm -f /etc/rc.d/init.d/3dm >& /dev/null
  285.            echo "done."
  286.             endif
  287.     endif
  288.  
  289.     if (-e /usr/local/bin/3dmpn) then
  290.     echo -n "Removing /usr/local/bin/3dmpn... "
  291.     rm -f /usr/local/bin/3dmpn >& /dev/null
  292.     echo "done."
  293.     endif
  294.  
  295.  
  296.     if (-e /sbin/3dmd) then
  297.     echo -n "Removing /sbin/3dmd... "
  298.     rm -f /sbin/3dmd >& /dev/null
  299.     echo "done."
  300.     endif
  301.  
  302.     if (-e /usr/sbin/3dmd) then
  303.     echo -n "Removing /usr/sbin/3dmd..."
  304.     rm -f /usr/sbin/3dmd >& /dev/null
  305.     echo "done."
  306.     endif
  307.  
  308.     if (-e /etc/3dmd.conf) then
  309.     set help = `cat /etc/3dmd.conf | grep HELP | cut -d ' ' -f2`
  310.     echo -n "Removing 3dm help files... "
  311.         rm -rf $help >& /dev/null
  312.     echo "done."
  313.     echo ""
  314.     echo -n "Do you want to remove the 3dmd.conf file? (Y/N) [Y] "
  315.     set question2 = $<
  316.     if ($question2 == "y" || $question2 == "") then
  317.         set question2 = "Y"
  318.         endif
  319.  
  320.     if ($question2 == "Y") then
  321.         echo ""
  322.         echo -n "Removing 3dm configuration files... "
  323.             rm -f /etc/3dmd.conf* >& /dev/null
  324.         echo "done."
  325.         endif
  326.     endif
  327.  
  328. echo "3dm removal complete."
  329. endif
  330.  
  331.  
  332. install:
  333. ## Check to see if install or configure argument was used with install.3dm
  334. #
  335. if ($sw1 == "install") then
  336.  
  337.     ## Check to see if 3dmd is running. If yes stop 3dmd
  338.     #
  339.     ps -ax | grep 3dmd | grep -v grep >/dev/null
  340.     if ($status == "0") then
  341.         echo ""
  342.     echo "**** Stopping 3dmd to load new configuration ****"
  343.     if (-e /etc/init.d/3dm) then
  344.         /etc/init.d/3dm stop
  345.  
  346.     else if (-e /etc/rc.d/init.d/3dm) then
  347.              /etc/rc.d/init.d/3dm stop
  348.          endif
  349.         endif
  350.  
  351.     ## Unpack help files, setup help directory and move files to /usr/local/doc
  352.     #
  353.     if ($question == "Y") then
  354.     set help = `cat /etc/3dmd.conf | grep HELP | cut -d ' ' -f2`
  355.     endif
  356.  
  357.     if (-e 3dm-help.tgz) then
  358.     if (-d $help) then
  359.         rm -rf $help >& /dev/null
  360.         endif
  361.         mkdir -p $help
  362.         tar zxf 3dm-help.tgz -C $help
  363.  
  364.     else if (-e 3dm-help.tar.gz) then
  365.         if (-d $help) then
  366.         rm -rf $help >& /dev/null
  367.         endif
  368.          mkdir -p $help
  369.          tar zxf 3dm-help.tar.gz -C $help
  370.  
  371.     else
  372.     echo ""
  373.     echo "3dm help files are missing. Installation stopping."
  374.     exit 1
  375.     endif
  376.  
  377.     ## Check if previous 3dmd is installed in old location.
  378.     if (-e /sbin/3dmd) then
  379.     rm -f /sbin/3dmd
  380.     endif
  381.  
  382.     if (-e 3dmd) then
  383.     /bin/cp -f 3dmd /usr/sbin
  384.     chmod 755 /usr/sbin/3dmd
  385.  
  386.     else
  387.     echo ""
  388.     echo "3dm binary missing. Installation stopping."
  389.     exit 1
  390.     endif
  391.  
  392.     if ($question == "Y") then
  393.     ## Check for RemoteAccess setting in /etc/3dmd.conf
  394.     cat /etc/3dmd.conf | grep -i 'REMOTEACCESS' > /dev/null
  395.     if ($status == 0) then
  396.         set currentsetting = `cat /etc/3dmd.conf | grep -i 'REMOTEACCESS' | cut -d ' ' -f2` > /dev/null
  397.         if ($currentsetting == "Yes") then
  398.         echo "3DM connection security is not set to limit connections to localhost only."
  399.         echo -n "Do you want to change this setting to limit access to localhost only? (Y/N) [Y] "
  400.         set newsetting = $<
  401.         if ($newsetting == "Y" || $newsetting == "y" || $newsetting == "") then
  402.             cat /etc/3dmd.conf | sed -e s/'REMOTEACCESS Yes'/'REMOTEACCESS No'/ >>/etc/3dmd.conf
  403.             endif
  404.         endif
  405.     else
  406.         echo "3DM connection security is not currently setup on your system."
  407.         echo -n "Do you want to limit 3DM access to localhost only connections? (Y/N) [Y] "
  408.         set remoteaccess = $<
  409.         if ($remoteaccess == "Y" || $remoteaccess == "y" || $remoteaccess == "") then
  410.         echo "REMOTEACCESS No" >>/etc/3dmd.conf
  411.  
  412.         else
  413.         echo "REMOTEACCESS Yes" >>/etc/3dmd.conf
  414.         endif
  415.         endif   
  416.  
  417.     ## Check for RO Password in /etc/3dmd.conf
  418.     cat /etc/3dmd.conf | grep -i 'ROPASSWORD' > /dev/null
  419.     if ($status != 0) then
  420.         echo "ROPASSWORD No" >>/etc/3dmd.conf
  421.         echo "ROKEY $default_passwd" >>/etc/3dmd.conf
  422.         endif
  423.  
  424.     ## Check for ExtLog path in /etc/3dmd.conf
  425.     cat /etc/3dmd.conf | grep -i 'EXTLOG' > /dev/null
  426.     if ($status != 0) then
  427.         echo "EXTLOG $default_extlog" >>/etc/3dmd.conf
  428.         endif
  429.  
  430.     goto finish    
  431.  
  432.  
  433.     else 
  434.     goto configure
  435.     endif
  436.  
  437.     endif
  438.  
  439.  
  440. howto:
  441. if ($distr == "untested") then
  442.     echo ""
  443.     echo "******************************************************************************************"
  444.     echo "**** Automatic configuration is only supported for the Red Hat and SuSE distributions. ***"
  445.     echo ""
  446.     echo "*** Note: 3ware tests and supports Red Hat and SuSE distributions only. ***"
  447.     echo ""
  448.     echo "You will need to configure the following manually on other systems."
  449.     echo ""
  450.     echo "You will need to create kill script links to init.d/3dm"
  451.     echo "Kill scripts should be setup in all run levels that don't support full user functionality."
  452.     echo "(example rc0.d, rc1.d, rc6.d, rcS.d)"
  453.     echo ""
  454.     echo "You will need to create start script links to init.d/3dm"
  455.     echo "Start scripts should be setup in all run levels that support full user functionality."
  456.     echo "(example rc2.d, rc3.d, rc5.d)"
  457.     echo ""
  458.     echo "If your release supports chkconfig you can use it as follows to setup the runlevel scripts."
  459.     echo "chkconfig --add 3dm"
  460.     echo "chkconfig --level 235 3dm on"
  461.     echo ""
  462.     echo "*** Note: To remove 3dm run level info use chkconfig --del 3dm ***"
  463.     echo ""
  464.     echo "Run level scripts are only provided for Red Hat and SuSE Linux."
  465.     echo "You may need to make changes to enable them under other distributions."
  466.     echo "cp -f 3w-xxxx.rc.* /etc/rc.d/init.d/3dm"
  467.     echo "chmod 755  /etc/rc.d/init.d/3dm"
  468.     echo ""
  469.     echo "The 3dm binary was copied to /usr/sbin/3dmd"
  470.     echo "3dmd.conf was created and placed in /etc"
  471.     echo "******************************************************************************************"
  472.     echo ""
  473.     echo ""
  474.  
  475.     exit 0
  476.     endif
  477. endif
  478.  
  479.  
  480. configure:
  481.  
  482. if ($sw1 == "install" || $sw1 == "configure" && $distr != "untested") then
  483.     if ($question == "Y") then
  484.     exit 0
  485.     endif
  486.  
  487.     echo ""
  488.         echo -n "Would you like to have email notification enabled? (Y/N) [Y] "
  489.         set email = $<
  490.     
  491.     if ($email == "") then
  492.     set email = "Y"
  493.     endif
  494.  
  495.     if ($email == "Y" || $email == "y" || $email == "YES" || $email == "Yes" || $email == "yes") then
  496.     echo -n "Please enter the name of your mail server. [$default_host]: "
  497.     set mail_server = $<
  498.  
  499.     if ($mail_server == "") then
  500.         set mail_server = $default_host
  501.         endif
  502.  
  503.     echo -n "Please enter the name of the user you want sending email notification. [$default_sender]: "
  504.     set mail_sender = $<
  505.  
  506.     if ($mail_sender == "") then
  507.         set mail_sender = $default_sender
  508.         endif
  509.  
  510.     echo -n "Please enter the name of the user you want receiving email notification. [$default_rcpt]: "
  511.     set mail_rcpt = $<
  512.  
  513.     if ($mail_rcpt == "") then
  514.         set mail_rcpt = $default_rcpt
  515.         endif
  516.  
  517.     else
  518.     set mail_server = $default_host
  519.     set mail_sender = $default_sender
  520.     set mail_rcpt = $default_rcpt
  521.     endif
  522.  
  523. #    echo -n "Would you like to enable audio notification for application start and errors? (Y/N) [Y] "
  524. #    set audio = $<
  525. #    if ($audio == "") then
  526. #    set audio = "Y"
  527. #    endif
  528.  
  529.     echo -n "Please enter the port number you would like to use for web monitoring. [$default_port]: "
  530.     set port = $<
  531.     if ($port == "") then
  532.     set port = $default_port
  533.     endif
  534.  
  535.     ## Delete old backup file then move current file to backup before creating new .conf file.
  536.     #
  537.     if ( -e $file_name ) then
  538.     rm -f $file_name.bak >& /dev/null
  539.     mv -f $file_name $file_name.bak
  540.     endif
  541.  
  542.     if ($email == "N" || $email == "n" || $email == "NO" || $email == "No" || $email == "no") then
  543.     echo "EMAIL No"    >>  $file_name
  544.     
  545.     else
  546.     echo "EMAIL Yes"   >>  $file_name
  547.     endif
  548.  
  549.     echo "SERVER $mail_server" >> $file_name
  550.     echo "SENDER $mail_sender" >> $file_name
  551.     echo "RCPT $mail_rcpt"     >> $file_name
  552.  
  553. #    if ($audio == "N" || $audio == "n" || $audio == "NO" || $audio == "No" || $audio == "no") then
  554.     echo "AUDIO No"    >> $file_name
  555.     
  556. #    else
  557. #    echo "AUDIO Yes"   >> $file_name
  558. #    endif
  559.  
  560.     echo "CALL3WARE No"            >> $file_name
  561.     echo "PORT $port"              >> $file_name
  562.     echo "FW $rebuild_rate"        >> $file_name
  563.     echo "HELP $help"              >> $file_name
  564.     echo "SNMP No"                 >> $file_name
  565.     echo "PASSWORD No"             >> $file_name
  566.     echo "KEY $default_passwd"     >> $file_name
  567.     echo "ROPASSWORD No"           >> $file_name
  568.     echo "ROKEY $default_passwd"   >> $file_name
  569.     echo "EXTLOG $default_extlog"  >> $file_name
  570.     
  571.     echo -n "Would you like 3DM connection security to limit connections to localhost only? (Y/N) [Y] "
  572.     set remoteaccess = $<
  573.     if ($remoteaccess == "Y" || $remoteaccess == "y" || $remoteaccess == "") then
  574.     echo "REMOTEACCESS No" >>/etc/3dmd.conf
  575.  
  576.     else
  577.     echo "REMOTEACCESS Yes" >>/etc/3dmd.conf
  578.     endif
  579.  
  580.  
  581. finish:
  582. if ($distr == "untested") then
  583.     goto howto
  584.     endif
  585.  
  586.     if ($distr == "redhat") then
  587.        ## Check for old script and remove it.
  588.     if (-e /etc/rc.d/init.d/3w-xxxx) then
  589.         rm -f /etc/rc.d/init.d/3w-xxxx >& /dev/null
  590.         endif
  591.  
  592.     if (-e /etc/rc.d/init.d/3dm) then
  593.         rm -f /etc/rc.d/init.d/3dm >& /dev/null
  594.         endif
  595.  
  596.     if (-e 3w-xxxx.rc.$distr) then
  597.         /bin/cp -f 3w-xxxx.rc.$distr /etc/rc.d/init.d/3dm
  598.         chmod 755  /etc/rc.d/init.d/3dm
  599.         endif
  600.  
  601.     ## Setup symbolic links for run levels.
  602.     if (`uname -r` == "2.4.2-2" || `uname -r` == "2.4.2-2smp") then
  603.     ## Setup symbolic links for run levels with old dir struct.
  604.             if (-d /etc/rc.d/rc0.d) then
  605.             #rc0.d Halt
  606.             ln -fs ../init.d/3dm /etc/rc.d/rc0.d/K603dm
  607.             endif
  608.             if (-d /etc/rc.d/rc1.d) then
  609.             #rc1.d Single user
  610.             ln -fs ../init.d/3dm /etc/rc.d/rc1.d/S403dm
  611.             endif
  612.             if (-d /etc/rc.d/rc2.d) then
  613.             #rc2.d Multi-user without network
  614.             ln -fs ../init.d/3dm /etc/rc.d/rc2.d/S403dm
  615.             endif
  616.             if (-d /etc/rc.d/rc3.d) then
  617.             #rc3.d Multi-user with network
  618.             ln -fs ../init.d/3dm /etc/rc.d/rc3.d/S403dm
  619.             endif
  620.             if (-d /etc/rc.d/rc4.d) then
  621.             #rc4.d Multi-user with network
  622.             ln -fs ../init.d/3dm /etc/rc.d/rc4.d/S403dm
  623.             endif
  624.             if (-d /etc/rc.d/rc5.d) then
  625.             #rc5.d Multi-user with network and X-windows
  626.             ln -fs ../init.d/3dm /etc/rc.d/rc5.d/S403dm
  627.             endif
  628.             if (-d /etc/rc.d/rc6.d) then
  629.             #rc6.d reboot
  630.             ln -fs ../init.d/3dm /etc/rc.d/rc6.d/K603dm
  631.             endif
  632.     else
  633.         chkconfig --add 3dm
  634.         chkconfig --level 235 3dm on
  635.         endif
  636.  
  637.     else if ($distr == "suse") then
  638.         ## Check for old script and remove it.
  639.         if (-d /etc/rc.d/init.d) then
  640.         if (-e /etc/rc.d/init.d/3w-xxxx) then
  641.             rm -f /etc/rc.d/init.d/3w-xxxx >& /dev/null
  642.             endif
  643.             
  644.         if (-e /etc/rc.d/init.d/3dm) then
  645.             rm -f /etc/rc.d/init.d/3dm >& /dev/null
  646.             endif
  647.  
  648.         if (-e 3w-xxxx.rc.$distr) then
  649.             /bin/cp -f 3w-xxxx.rc.$distr /etc/rc.d/init.d/3dm
  650.             chmod 755  /etc/rc.d/init.d/3dm
  651.             endif
  652.  
  653.  
  654.         else if (-d /etc/init.d) then
  655.             if (-e /etc/init.d/3w-xxxx) then
  656.             rm -f /etc/init.d/3w-xxxx >& /dev/null
  657.             endif
  658.             
  659.         if (-e /etc/init.d/3dm) then
  660.             rm -f /etc/init.d/3dm >& /dev/null
  661.             endif
  662.  
  663.         if (-e 3w-xxxx.rc.$distr) then
  664.             /bin/cp -f 3w-xxxx.rc.$distr /etc/init.d/3dm
  665.             chmod 755  /etc/init.d/3dm
  666.             endif
  667.         endif
  668.  
  669.             ## Setup symbolic links for run levels with old dir struct.
  670.             if (-d /etc/rc.d/rc0.d) then
  671.             #rc0.d Halt
  672.             ln -fs ../3dm /etc/rc.d/rc0.d/K603dm
  673.             endif
  674.             if (-d /etc/rc.d/rcS.d) then
  675.             #rcS.d Single user
  676.             ln -fs ../3dm /etc/rc.d/rcS.d/S403dm
  677.             endif
  678.             if (-d /etc/rc.d/rc1.d) then
  679.             #rc1.d Single user
  680.             ln -fs ../3dm /etc/rc.d/rc1.d/S403dm
  681.             endif
  682.             if (-d /etc/rc.d/rc2.d) then
  683.             #rc2.d Multi-user without network
  684.             ln -fs ../3dm /etc/rc.d/rc2.d/S403dm
  685.             endif
  686.             if (-d /etc/rc.d/rc3.d) then
  687.             #rc3.d Multi-user with network
  688.             ln -fs ../3dm /etc/rc.d/rc3.d/S403dm
  689.             endif
  690.             if (-d /etc/rc.d/rc4.d) then
  691.             #rc4.d Multi-user with network
  692.             ln -fs ../3dm /etc/rc.d/rc4.d/S403dm
  693.             endif
  694.             if (-d /etc/rc.d/rc5.d) then
  695.             #rc5.d Multi-user with network and X-windows
  696.             ln -fs ../3dm /etc/rc.d/rc5.d/S403dm
  697.             endif
  698.             if (-d /etc/rc.d/rc6.d) then
  699.             #rc6.d reboot
  700.             ln -fs ../3dm /etc/rc.d/rc6.d/K603dm
  701.             endif
  702.  
  703.     else
  704.     echo ""
  705.     echo "** Distribution not recognized **"
  706.     echo ""
  707.     echo "Manual configuration of runlevel scripts required."
  708.     echo "The executable is '/usr/sbin/3dmd'."
  709.     echo ""
  710.     exit 0
  711.     endif
  712.     
  713.  
  714.     ## Start 3dmd.
  715.  
  716.     if (-e /etc/init.d/3dm) then
  717.         echo ""
  718.         echo "**** Starting 3dmd using configuration found in /etc/3dmd.conf ****"
  719.         /etc/init.d/3dm start
  720.  
  721.     else if (-e /etc/rc.d/init.d/3dm) then
  722.          echo ""
  723.              echo "**** Starting 3dmd using configuration found in /etc/3dmd.conf ****"
  724.          /etc/rc.d/init.d/3dm start
  725.          endif
  726.  
  727.     ## Clean up files installation from 3ware.
  728.     if (-e $file_name) then
  729.     chmod 660 $file_name
  730.     endif
  731.  
  732.     cd ..
  733.     if (-d 3ware) then
  734.         rm -rf 3ware >& /dev/null
  735.     endif
  736. endif
  737.