home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / lib / YaST / SuSEconfig.functions
Text File  |  2006-11-29  |  3KB  |  104 lines

  1. #! /bin/sh
  2. # Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany.
  3. # All rights reserved.
  4. #
  5. # Author: Burchard Steinbild, 1996-97
  6. #         Florian La Roche, 1996
  7. # Please send feedback to http://www.suse.de/feedback
  8. #
  9.  
  10. test -z "$MD5DIR" && {
  11.     MD5DIR=/var/adm/SuSEconfig/md5
  12.     echo "Warning! MD5DIR is not set: you probably called this script outside SuSEconfig...!"
  13.     echo "Using MD5DIR=\"$MD5DIR\"..."
  14. }
  15.  
  16. echo_warning ()        # Usage: echo_warning out_file dependency-string
  17. {
  18.     echo "#"
  19.     echo "# `dirname $1`/`basename $1 .SuSEconfig`"
  20.     echo "#"
  21.     echo "# Automatically generated by SuSEconfig on $(date)."
  22.     echo "#"
  23.     echo "# PLEASE DO NOT EDIT THIS FILE!"
  24.     echo "#"
  25.     echo "$2"
  26.     echo "#"
  27.     echo "#" 
  28. }
  29.  
  30. check_md5_and_move() # Usage: check_md5_and_move file_name-without.SuSEconfig
  31. {
  32.     # This function checks the existence of a file (specified without the
  33.     # extension .SuSEconfig and without "$r") and a corresponding md5 checksum
  34.     # and tests whether the time stamp of the file has changed.
  35.     # If it has, nothing further will happen. If not, the "file.SuSEconfig"
  36.     # will be moved to "file".
  37.  
  38.     FILE=$1
  39.     if test -n "$r" ; then
  40.         RELPATH=`echo $FILE | sed -e"s:^$r::"`
  41.     else
  42.         RELPATH=$FILE
  43.     fi
  44.     MD5FILE=$MD5DIR/$RELPATH
  45.     #
  46.     # make sure that the directory exists
  47.     mkdir -p `dirname $MD5FILE`
  48.     NEWMD5SUM="`cat $FILE.SuSEconfig | grep -v "^#" | md5sum`"
  49.     if test ! -s $FILE ; then
  50.         touch $FILE
  51.         rm -f $MD5FILE
  52.     fi
  53.     if test "$FORCE_REPLACE" = true ; then
  54.         cp -p $FILE.SuSEconfig $FILE
  55.     fi
  56.     USERMD5SUM="`cat $FILE | grep -v "^#" | md5sum`"
  57.     test -e $MD5FILE || echo "$USERMD5SUM" > $MD5FILE
  58.     OLDMD5SUM="`cat $MD5FILE`"
  59.     if test "$USERMD5SUM" != "$OLDMD5SUM" -a \
  60.             "$USERMD5SUM" != "$NEWMD5SUM" ; then
  61.         echo
  62.         echo "ATTENTION: You have modified $RELPATH.  Leaving it untouched..."
  63.         echo "You can find my version in $FILE.SuSEconfig..."
  64.         echo
  65.     else
  66.         if test "$USERMD5SUM" != "$NEWMD5SUM" -o "$FORCE_REPLACE" = true ; then
  67.             echo "Installing new $RELPATH"
  68.             cp -p $FILE.SuSEconfig $FILE
  69.         else
  70.             test "$VERBOSE" = false || echo "No changes for $RELPATH"
  71.         fi
  72.         rm -f $FILE.SuSEconfig
  73.     fi
  74.     rm -f $MD5FILE
  75.     echo "$NEWMD5SUM" > $MD5FILE
  76. }
  77.  
  78. my_test_write () {  # function to test if a directory is really writable
  79.                     # (think about ro mounted nfs systems)
  80.     local TESTFILE=$1/.my_test_write.SuSEconfig
  81.     local RETURN=false
  82.     touch $TESTFILE 2> /dev/null && RETURN=true
  83.     rm -f $TESTFILE $TESTFILE.*
  84.     eval $RETURN
  85. }
  86.  
  87. my_test_for_space () { # test if we have enough space
  88.     local RETURN=true
  89.     my_test_write $1 && {
  90.       dd if=/dev/zero of=$1/testforspace.SuSEconfig bs=1k count=50 \
  91.         2> /dev/null  || {
  92.         rm -f $1/testforspace.SuSEconfig
  93.         echo
  94.         echo
  95.         echo We do not have enough disk space in $1 or /dev/zero
  96.         echo does not exist. Exit.
  97.         echo
  98.         RETURN=false
  99.       }
  100.       rm -f $1/testforspace.SuSEconfig
  101.     }
  102.     eval $RETURN
  103. }
  104.