diff options
author | nbm <nbm@FreeBSD.org> | 2000-05-16 22:18:46 +0800 |
---|---|---|
committer | nbm <nbm@FreeBSD.org> | 2000-05-16 22:18:46 +0800 |
commit | c5fa99d5b0dcd65cb64d5b8a9acefaa03fc25220 (patch) | |
tree | b531815735cf130d1f4ea0ae3a9ff5a6a2ac4d47 /net/jabber/pkg-install | |
parent | c31618771f434e49aede283cccd8e71a44fcc3fa (diff) | |
download | freebsd-ports-gnome-c5fa99d5b0dcd65cb64d5b8a9acefaa03fc25220.tar.gz freebsd-ports-gnome-c5fa99d5b0dcd65cb64d5b8a9acefaa03fc25220.tar.zst freebsd-ports-gnome-c5fa99d5b0dcd65cb64d5b8a9acefaa03fc25220.zip |
Upgrade jabber-transport to 1.0
PR: 18602
Submitted by: Kostya Lukin <lukin@sapa.ivcme.elektra.ru> (maintainer)
Diffstat (limited to 'net/jabber/pkg-install')
-rw-r--r-- | net/jabber/pkg-install | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/net/jabber/pkg-install b/net/jabber/pkg-install new file mode 100644 index 000000000000..794315549287 --- /dev/null +++ b/net/jabber/pkg-install @@ -0,0 +1,146 @@ +#! /bin/sh + +chmods_done=" " + +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}\"." + if which -s pw && yesno "Would you like me to create it" y; then + pw groupadd ${g} || exit + echo "Done." + else + echo "Please create it, and try again." + if ! grep -q "^${u}:" /etc/passwd; then + echo "While you're at it, please create a user \"${u}\" too," + echo "with a default group of \"${g}\"." + fi + exit 1 + fi + 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}\"." + if which -s pw && yesno "Would you like me to create it" y; then + pw useradd ${u} -g ${g} -h - ${homeopt} \ + -s /nonexistent -c "${gcos}" || exit + echo "Done." + else + echo "Please create it, and try again." + exit 1 + fi + fi + + if [ x"$homeopt" = x ]; then + eval home=~${u} + if [ ! -d "${home}" ]; then + if yesno \ + "Would you like me to create ${u}'s home directory (${home})" y + then + (umask 77 && \ + mkdir -p ${home}) || exit + chown -R ${u}:${g} ${home} || exit + else + echo "Please create it, and try again." + exit 1 + fi + fi + fi +} + +case $2 in + +POST-INSTALL) + if which -s pw && which -s lockf; then + : + else + cat <<EOF + +This system looks like a pre-2.2 version of FreeBSD. I see that it +is missing the "lockf" and/or "pw" utilities. I need these utilities. +Please get them and install them, and try again. You can get the +sources from: + + ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.bin/lockf.tar.gz + ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz + +EOF + exit 1 + fi + + user=jserver + group=jserver + spooldir="/var/jspool" + etcdir=${PREFIX}/etc + + echo "" + make_account ${user} ${group} "Jabber Daemon" "/nonexistent" + + echo "Fixing ownerships and modes in \"${spooldir}\"." + chown -R ${user}:${group} ${spooldir} + chmod -R go= ${spooldir} + + echo "Fixing config files ownerships and modes." + chown root:${group} ${etcdir}/jserver.xml ${etcdir}/jserver.xml.default + chmod 640 ${etcdir}/jserver.xml ${etcdir}/jserver.xml.default + + if [ ! -f /var/log/jserver.log ]; then + echo "Creating \"/var/log/jserver.log\"." + cp /dev/null /var/log/jserver.log + fi + + if [ ! -f /var/log/jserver.error ]; then + echo "Creating \"/var/log/jserver.error\"." + cp /dev/null /var/log/jserver.error + fi + + if [ ! -f /var/log/jserver_packet.log ]; then + echo "Creating \"/var/log/jserver_packet.log\"." + cp /dev/null /var/log/jserver_packet.log + fi + + echo "Fixing log files ownerships and modes." + chown ${user}:${group} /var/log/jserver.log /var/log/jserver.error /var/log/jserver_packet.log + chmod 600 /var/log/jserver.log /var/log/jserver.error /var/log/jserver_packet.log + + ;; +esac |