honor $SYSTEMD_NO_WRAP again (bnc#774754)
[opensuse:fcrozats-aaa_base.git] / files / lib / YaST / SuSEconfig.functions
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 }