home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / lib / YaST2 / startup / common / misc.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2006-11-29  |  5KB  |  207 lines

  1. #!/bin/sh
  2. #================
  3. # FILE          : misc.sh
  4. #----------------
  5. # PROJECT       : YaST (Yet another Setup Tool v2)
  6. # COPYRIGHT     : (c) 2004 SUSE Linux AG, Germany. All rights reserved
  7. #               :
  8. # AUTHORS       : Marcus Schaefer <ms@suse.de>
  9. #               :
  10. #               :
  11. # BELONGS TO    : System installation and Administration
  12. #               :
  13. # DESCRIPTION   : Common used functions for the YaST2 startup process
  14. #               : refering to miscellaneous stuff
  15. #               :
  16. # STATUS        : $Id: misc.sh 34570 2006-11-22 17:53:31Z ms $
  17. #----------------
  18. #
  19. #----[ set_proxy ]------#
  20. function set_proxy() {
  21. #--------------------------------------------------
  22. # If Proxy: is set in install.inf export the env
  23. # variables for http_proxy and ftp_proxy
  24. # ---
  25.     if [ -f /etc/install.inf ];then
  26.     if grep -qs '^Proxy:.*' /etc/install.inf ; then
  27.         Proxy=$(awk ' /^Proxy:/ { print $2 }' < /etc/install.inf)
  28.         ProxyPort=$(awk ' /^ProxyPort:/ { print $2 }' < /etc/install.inf)
  29.         ProxyProto=$(awk ' /^ProxyProto:/ { print $2 }' < /etc/install.inf)
  30.         FullProxy="${ProxyProto}://${Proxy}:${ProxyPort}/"
  31.         export http_proxy=$FullProxy
  32.         export ftp_proxy=$FullProxy
  33.     fi
  34.     fi
  35. }
  36.  
  37. #----[ import_install_inf ]----#
  38. function import_install_inf () {
  39. #--------------------------------------------------
  40. # import install.inf information as environment
  41. # variables to the current environment
  42. # ---
  43.     if [ -f /etc/install.inf ];then
  44.     #eval $(
  45.     #    grep ': ' /etc/install.inf |\
  46.     #    sed -e 's/"/"\\""/g' -e 's/:  */="/' -e 's/$/"/'
  47.     #)
  48.     IFS_SAVE=$IFS
  49. IFS="
  50. "
  51.     for i in `cat /etc/install.inf | sed -e s'@: @%@'`;do
  52.         varname=`echo $i | cut -f 1 -d% | tr -d " "`
  53.         varvals=`echo $i | cut -f 2 -d%`
  54.         varvals=`echo $varvals | sed -e s'@^ *@@' -e s'@ *$@@'`
  55.         export $varname=$varvals
  56.     done
  57.     IFS=$IFS_SAVE
  58.     fi
  59. }
  60.  
  61. #----[ ask_for_term ]----#
  62. function ask_for_term () {
  63. #--------------------------------------------------
  64. # for serial console installation only. Create a
  65. # menu to be able to choose a specific terminal
  66. # type
  67. #
  68.     unset TERM
  69.     echo -e "\033c"
  70.  
  71.     while test -z "$TERM" ; do
  72.     echo ""
  73.     echo "What type of terminal do you have ?"
  74.     echo ""
  75.     echo "  1) VT100"
  76.     echo "  2) VT102"
  77.     echo "  3) VT220$HVC_CONSOLE_HINT"
  78.     echo "  4) X Terminal Emulator (xterm)"
  79.     echo "  5) X Terminal Emulator (xterm-vt220)"
  80.     echo "  6) X Terminal Emulator (xterm-sun)"
  81.     echo "  7) screen session"
  82.     echo "  8) Linux VGA or Framebuffer Console"
  83.     echo "  9) Other"
  84.     echo ""
  85.     echo -n "Type the number of your choice and press Return: "
  86.     read SELECTION
  87.     case $SELECTION in
  88.         1)
  89.             TERM=vt100
  90.             ;;
  91.         2)
  92.             TERM=vt102
  93.             ;;
  94.         3)
  95.             TERM=vt220
  96.             ;;
  97.         4)
  98.             TERM=xterm
  99.             ;;
  100.         5)
  101.             TERM=xterm-vt200
  102.             ;;
  103.         6)
  104.             TERM=xterm-sun
  105.             ;;
  106.         7)
  107.             TERM=screen
  108.             ;;
  109.         8)
  110.             TERM=linux
  111.             ;;
  112.         9)
  113.             echo ""
  114.             echo ""
  115.             echo "Specify a valid terminal type exactly as it is listed in the"
  116.             echo "terminfo database."
  117.             echo ""
  118.             echo -n "Terminal type: "
  119.             read TERM
  120.             ;;
  121.         *)
  122.             echo ""
  123.             echo ""
  124.             echo "This selection was not correct, please try again!"
  125.             ;;
  126.     esac
  127.     done
  128.     echo ""
  129.     echo ""
  130.     echo "Please wait while YaST2 will be started"
  131.     echo ""
  132. }
  133.  
  134. #----[ set_term_variable ]----#
  135. function set_term_variable () {
  136. #--------------------------------------------------
  137. # set TERM variable and save it to /etc/install.inf
  138. #
  139.     if [ -z "$AutoYaST" ] && [ -z "$VNC" ] && [ -z "$UseSSH" ];then
  140.         ask_for_term
  141.         export TERM
  142.     fi
  143.     echo "TERM: $TERM" >> /etc/install.inf
  144. }
  145.  
  146. #----[ got_kernel_param ]----#
  147. function got_kernel_param () {
  148. #--------------------------------------------------
  149. # check for kernel parameter in /proc/cmdline
  150. # ---
  151.     grep -qi $1 < /proc/cmdline
  152. }
  153.  
  154. #----[ got_install_param ]----#
  155. function got_install_param () {
  156. #--------------------------------------------------
  157. # check for install.inf parameter
  158. # ---
  159.     if [ -f /etc/install.inf ];then
  160.         grep -qs $1 /etc/install.inf
  161.     else
  162.         return 1
  163.     fi
  164. }
  165.  
  166. #----[ set_splash ]-----#
  167. function set_splash () {
  168. #--------------------------------------------------
  169. # set splash progressbar to a value given in $1
  170. # ---
  171.     [ -f /proc/splash ] && echo "show $(($1*65535/100))" > /proc/splash
  172.     [ "$1" = 100 -a -x /sbin/splash ] && /sbin/splash -q
  173. }
  174.  
  175. #----[ disable_splash ]-----#
  176. function disable_splash () {
  177. #--------------------------------------------------
  178. # disable splash sceen. This means be verbose and
  179. # show the kernel messages
  180. # ---
  181.     [ -f /proc/splash ] && echo "verbose" > /proc/splash
  182. }
  183.  
  184. #----[ have_pid ]----#
  185. function have_pid () {
  186. #------------------------------------------------------
  187. # check if given PID is part of the process list
  188. # ---
  189.     kill -0 $1 2>/dev/null
  190. }
  191.  
  192. #----[ load_module ]----#
  193. function load_module () {
  194. #------------------------------------------------------
  195. # load a module using modprobe
  196. # ---
  197.     /sbin/modprobe $1
  198. }
  199.  
  200. #----[ skip_initvicons ]----#
  201. function skip_initvicons () {
  202. #------------------------------------------------------
  203. # check if the call to initvicons must be skipped
  204. # ---
  205.     grep -qw TERM /proc/cmdline && return 0 || return 1
  206. }
  207.