~vcs-imports/samba/main

« back to all changes in this revision

Viewing changes to packaging/Debian/debian-unstable/samba-common.postinst

  • Committer: jerry
  • Date: 2006-07-14 21:48:39 UTC
  • Revision ID: vcs-imports@canonical.com-20060714214839-586d8c489a8fcead
gutting trunk to move to svn:externals

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
#
3
 
#
4
 
 
5
 
set -e
6
 
 
7
 
# Do debconf stuff here
8
 
. /usr/share/debconf/confmodule
9
 
 
10
 
# We need a default smb.conf file. If one doesn't exist we put in place
11
 
#       one that has some basic defaults.
12
 
if [ ! -e /etc/samba/smb.conf ]; then
13
 
        cp -a /usr/share/samba/smb.conf /etc/samba/
14
 
fi
15
 
 
16
 
# Static tempfile location, dpkg-style
17
 
TMPFILE=/etc/samba/smb.conf.dpkg-tmp
18
 
 
19
 
# ------------------------- Debconf questions start ---------------------
20
 
 
21
 
# Is the user configuring with debconf, or he/she prefers swat/manual
22
 
#       config?
23
 
db_get samba-common/do_debconf || true
24
 
if [ "${RET}" = "true" ]; then
25
 
        # Get workgroup name
26
 
        db_get samba-common/workgroup || true
27
 
        WORKGROUP="${RET}"
28
 
 
29
 
        # Oh my GOD, this is ugly.  Why would anyone put these
30
 
        # characters in a workgroup name?  Why, Lord, why???
31
 
        WORKGROUP=`echo $WORKGROUP | \
32
 
                   sed -e's/\\\\/\\\\\\\\/g
33
 
                          s#/#\\\\/#g
34
 
                          s/&/\\\&/g
35
 
                          s/\\\$/\\\\\\\$/g'`
36
 
 
37
 
        sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
38
 
                /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ \
39
 
                        s/^\([[:space:]]*\)workgroup[[:space:]]*=.*/\1workgroup = ${WORKGROUP}/i" \
40
 
                < /etc/samba/smb.conf >${TMPFILE}
41
 
        mv -f ${TMPFILE} /etc/samba/smb.conf
42
 
 
43
 
        # Encrypt passwords?
44
 
        db_get samba-common/encrypt_passwords || true
45
 
        ENCRYPT_PASSWORDS="${RET}"
46
 
 
47
 
        sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
48
 
                /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ \
49
 
                        s/^\([[:space:]]*\)encrypt passwords[[:space:]]*=.*/\1encrypt passwords = ${ENCRYPT_PASSWORDS}/i" \
50
 
                < /etc/samba/smb.conf >${TMPFILE}
51
 
        mv -f ${TMPFILE} /etc/samba/smb.conf
52
 
 
53
 
        # Install DHCP support
54
 
        db_get samba-common/dhcp && DHCPVAL="$RET"
55
 
        db_fget samba-common/dhcp applied || true
56
 
        if [ "$DHCPVAL" = true ] && [ "$RET" != true ] && \
57
 
           ! grep -q dhcp.conf /etc/samba/smb.conf
58
 
        then
59
 
                sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
60
 
                        /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ {
61
 
                                /wins server[[:space:]]*=/a \\
62
 
\\
63
 
# If we receive WINS server info from DHCP, override the options above. \\
64
 
   include = /etc/samba/dhcp.conf
65
 
}" < /etc/samba/smb.conf > ${TMPFILE}
66
 
                mv -f ${TMPFILE} /etc/samba/smb.conf
67
 
        elif [ "$RET" != true ] && grep -q dhcp.conf /etc/samba/smb.conf
68
 
        then
69
 
                :
70
 
                # FIXME: here we /delete/ the lines?
71
 
        fi
72
 
        # Once we get here, the config has been applied, whatever
73
 
        # it is.
74
 
        if [ "$RET" != true ]; then
75
 
                db_fset samba-common/dhcp applied true
76
 
        fi
77
 
 
78
 
        # Update charset settings?
79
 
        if ! grep -q "^[[:space:]]*unix charset[[:space:]]*=" /etc/samba/smb.conf
80
 
        then
81
 
                db_get samba-common/character_set || true
82
 
                UNIXCHARSET="${RET}"
83
 
                if [ -n "$UNIXCHARSET" ]
84
 
                then
85
 
                        sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
86
 
                                s/^\([[:space:]]*\)character set/\1character set/i
87
 
                                /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ {
88
 
                                        /^[[:space:]]*character set[[:space:]]*=/c \\
89
 
   unix charset = $UNIXCHARSET
90
 
                                }" < /etc/samba/smb.conf > ${TMPFILE}
91
 
                        mv -f ${TMPFILE} /etc/samba/smb.conf
92
 
                fi
93
 
        fi
94
 
 
95
 
        if grep -qi "^[[:space:]]*passdb backend[[:space:]]*=.*unixsam" /etc/samba/smb.conf
96
 
        then
97
 
                sed -e 's/^\([[:space:]]*\)passdb backend/\1passdb backend/i
98
 
                        /^[[:space:]]*passdb backend/ {
99
 
                                s/unixsam/guest/i
100
 
                        }' < /etc/samba/smb.conf > ${TMPFILE}
101
 
                mv -f ${TMPFILE} /etc/samba/smb.conf
102
 
        fi
103
 
 
104
 
        if ! grep -q "^[[:space:]]*dos charset[[:space:]]*=" /etc/samba/smb.conf
105
 
        then
106
 
                db_get samba-common/codepage || true
107
 
                DOSCHARSET="${RET}"
108
 
                if [ -n "$DOSCHARSET" ]
109
 
                then
110
 
                        sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
111
 
                                s/^\([[:space:]]*\)client code page/\1client code page/i
112
 
                                /^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ {
113
 
                                        /^[[:space:]]*client code page[[:space:]]*=/c \\
114
 
   dos charset = $DOSCHARSET
115
 
}" < /etc/samba/smb.conf > ${TMPFILE}
116
 
                        mv -f ${TMPFILE} /etc/samba/smb.conf
117
 
                fi
118
 
        fi
119
 
 
120
 
        if dpkg --compare-versions "$2" lt 2.999+3.0.alpha20-4 \
121
 
           && ! grep -q "^[[:space:]]*panic action[[:space:]]*=" /etc/samba/smb.conf
122
 
        then
123
 
                sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
124
 
                        /^[[:space:]]*\[global\]/a \\
125
 
\\
126
 
# Do something sensible when Samba crashes: mail the admin a backtrace\\
127
 
   panic action = /usr/share/samba/panic-action %d" < /etc/samba/smb.conf > ${TMPFILE}
128
 
                mv -f ${TMPFILE} /etc/samba/smb.conf
129
 
        fi
130
 
 
131
 
fi
132
 
 
133
 
chmod a+r /etc/samba/smb.conf
134
 
 
135
 
# ------------------------- Debconf questions end ---------------------
136
 
 
137
 
db_stop
138
 
 
139
 
#DEBHELPER#