diff options
Diffstat (limited to 'net/smokeping/pkg-install')
-rw-r--r-- | net/smokeping/pkg-install | 147 |
1 files changed, 39 insertions, 108 deletions
diff --git a/net/smokeping/pkg-install b/net/smokeping/pkg-install index 2ef9d68abd3..d6d1620de39 100644 --- a/net/smokeping/pkg-install +++ b/net/smokeping/pkg-install @@ -3,119 +3,50 @@ # $FreeBSD$ # -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 +case $2 in +PRE-INSTALL) + if ! pw groupshow %%WWW_GROUP%% 2>/dev/null 1>&2; then + if pw groupadd %%WWW_GROUP%% -g %%WWW_GID%%; then + echo 'Added group "%%WWW_GROUP%%".' + else + echo 'Adding group "%%WWW_GROUP%%" failed...' + exit 1 + fi 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 + if ! pw usershow %%WWW_USER%% 2>/dev/null 1>&2; then + if pw useradd %%WWW_USER%% -u %%WWW_UID%% -g %%WWW_GROUP%% -h - \ + -s /sbin/nologin -d /nonexistent \ + -c "World Wide Web Owner"; \ + then + echo 'Added user "%%WWW_USER%%".' + else + echo 'Adding user "%%WWW_USER%%" failed...' + exit 1 + fi fi - fi -} - -if [ "$2" != "PRE-INSTALL" ]; then - exit 0 -fi -USER=www -GROUP=${USER} -UID=80 -GID=${UID} - -if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then - if pw groupadd ${GROUP} -g ${GID}; then - echo "Added group \"${GROUP}\"." - else - echo "Adding group \"${GROUP}\" failed..." - exit 1 + if ! pw groupshow %%GROUP%% 2>/dev/null 1>&2; then + if pw groupadd %%GROUP%%; then + echo 'Added group "%%GROUP%%".' + else + echo 'Adding group "%%GROUP%%" failed...' + exit 1 + fi fi -fi -if ! pw usershow "${USER}" 2>/dev/null 1>&2; then - if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \ - -s "/sbin/nologin" -d "/nonexistent" \ - -c "World Wide Web Owner"; \ - then - echo "Added user \"${USER}\"." - else - echo "Adding user \"${USER}\" failed..." - exit 1 + if ! pw usershow %%USER%% 2>/dev/null 1>&2; then + if pw useradd %%USER%% -g %%GROUP%% -h - \ + -s /nonexistent -c "SmokePing Daemon"; \ + then + echo 'Added user "%%USER%%".' + else + echo 'Adding user "%%USER%%" failed...' + exit 1 + fi fi -fi -make_account smokeping smokeping "SmokePing Daemon" "/nonexistent" + exit 0 + ;; +esac + |