summaryrefslogtreecommitdiffstats
path: root/net/bld/pkg-install
blob: fbd5350d4787fe121ca686431bdcabcf93eb9c79 (plain)
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
OpenPOWER on IntegriCloud