7
# Do debconf stuff here
8
. /usr/share/debconf/confmodule
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/
16
# Static tempfile location, dpkg-style
17
TMPFILE=/etc/samba/smb.conf.dpkg-tmp
19
# ------------------------- Debconf questions start ---------------------
21
# Is the user configuring with debconf, or he/she prefers swat/manual
23
db_get samba-common/do_debconf || true
24
if [ "${RET}" = "true" ]; then
26
db_get samba-common/workgroup || true
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
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
44
db_get samba-common/encrypt_passwords || true
45
ENCRYPT_PASSWORDS="${RET}"
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
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
59
sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
60
/^[[:space:]]*\[global\]/,/^[[:space:]]*\[/ {
61
/wins server[[:space:]]*=/a \\
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
70
# FIXME: here we /delete/ the lines?
72
# Once we get here, the config has been applied, whatever
74
if [ "$RET" != true ]; then
75
db_fset samba-common/dhcp applied true
78
# Update charset settings?
79
if ! grep -q "^[[:space:]]*unix charset[[:space:]]*=" /etc/samba/smb.conf
81
db_get samba-common/character_set || true
83
if [ -n "$UNIXCHARSET" ]
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
95
if grep -qi "^[[:space:]]*passdb backend[[:space:]]*=.*unixsam" /etc/samba/smb.conf
97
sed -e 's/^\([[:space:]]*\)passdb backend/\1passdb backend/i
98
/^[[:space:]]*passdb backend/ {
100
}' < /etc/samba/smb.conf > ${TMPFILE}
101
mv -f ${TMPFILE} /etc/samba/smb.conf
104
if ! grep -q "^[[:space:]]*dos charset[[:space:]]*=" /etc/samba/smb.conf
106
db_get samba-common/codepage || true
108
if [ -n "$DOSCHARSET" ]
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
120
if dpkg --compare-versions "$2" lt 2.999+3.0.alpha20-4 \
121
&& ! grep -q "^[[:space:]]*panic action[[:space:]]*=" /etc/samba/smb.conf
123
sed -e "s/^\([[:space:]]*\)\[global\]/\1\[global\]/i
124
/^[[:space:]]*\[global\]/a \\
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
133
chmod a+r /etc/samba/smb.conf
135
# ------------------------- Debconf questions end ---------------------