aboutsummaryrefslogtreecommitdiffstats
path: root/net/bld/pkg-install
blob: fbd5350d4787fe121ca686431bdcabcf93eb9c79 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/sh

if [ $2 != "POST-INSTALL" ]
    then
    exit
fi

varrun=/var/run/bld
logfile=/var/log/bld.log
user=bld
group=bld
newsyslog_conf=/etc/newsyslog.conf
syslog_conf=/etc/syslog.conf
syslog_pid=/var/run/syslog.pid
nonexistent=/nonexistent

ask() {
    local question default answer

    question=$1
    default=$2
    if [ -z "${PACKAGE_BUILDING}" ]; then
    read -p "${question} [${default}]? " answer
    fi
    if [ x${answer} = x ]; then
    answer=${default}
    fi
    echo ${answer}
}

yesno() {
    local dflt question answer

    question=$1
    dflt=$2
    while :; do
    answer=$(ask "${question}" "${dflt}")
    case "${answer}" in
        [Yy]*)      return 0;;
[Nn]*)      return 1;;
esac
echo "Please answer yes or no."
done
}

make_account() {
    local u g gcos homeopt home

    u=$1
    g=$2
    gcos=$3
    homeopt=${4:+"-d $4"}

    if pw group show "${g}" >/dev/null 2>&1; then
    echo "You already have a group \"${g}\", so I will use it."
    else
    echo "You need a group \"${g}\"."
    pw groupadd ${g} || exit
    echo "Done."
    fi
    
    if pw user show "${u}" >/dev/null 2>&1; then
    echo "You already have a user \"${u}\", so I will use it."
    else
    echo "You need a user \"${u}\"."
    pw useradd ${u} -g ${g} -h - ${homeopt} \
        -s $nonexistent -c "${gcos}" || exit
    echo "Done."
    fi

    if [ x"$homeopt" = x ]; then
    eval home=~${u}
    if [ ! -d "${home}" ]; then
        mkdir -p ${home}/.cvsup || exit
        touch ${home}/.cvsup/auth || exit
        chown -R ${u}:${g} ${home} || exit
        chmod -R go= ${home} || exit
    fi
    fi
}

if [ ! -d "${varrun}" ]
    then
    mkdir ${varrun} || exit
fi

echo ""
make_account ${user} ${group} "Blacklist Daemon" "$nonexistent"
chmod 700 ${varrun}
chown bld ${varrun}

if grep -q "^[^#]*${facility}.*$logfile" $syslog_conf; then
    echo -n "It looks like you already have some logging set up, so I "
    echo "will use it."
else
    echo "Setting up server logging in \"$syslog_conf\"."
    cat <<EOF >>$syslog_conf
!bld
*.*                     $logfile
EOF

if [ ! -f $logfile ]; then
    echo "Creating \"$logfile\"."
    cp /dev/null $logfile
fi

if [ -f $syslog_pid ]; then
    echo "Giving syslogd a kick in the pants."
    kill -HUP $(cat $syslog_pid)
fi

echo "Adding bld log entry to \"$newsyslog_conf\"."
cat <<EOF >>$newsyslog_conf
$logfile            664  7    *    24    Z
EOF
echo "Done."
fi

# Compatibility from v0.2.4 port
for i in bld_acl.conf bld_whitelist.conf
do
  if [ -f ${PKG_PREFIX}/etc/$i ]
      then
      if [ -f ${PKG_PREFIX}/etc/bld/$i ]
      then
      echo "WARNING: You have a $i configuration file in two directories:"
      echo "${PKG_PREFIX}/etc and ${PKG_PREFIX}/etc/bld"
      echo "You must use ${PREFIX}/etc/bld/$i"
      else
      echo "You seem to have a $i configuration file in ${PKG_PREFIX}/etc"
      echo "Copying it to ${PKG_PREFIX}/etc/bld"
      cp ${PKG_PREFIX}/etc/$i ${PKG_PREFIX}/etc/bld
      echo "You should clean the old ${PKG_PREFIX}/etc/$i"
      fi
  fi
done