#!/bin/sh -x . /usr/home/web/default/petar.company/cfg_apps/petar/petar.cfg ACTION=${1} OK=" [ OK ]" KO=" [ KO ]" cd ${BASEDIR} if [ ${ACTION} = "ADD" ] then USER=${2} PWD=${3} SHELL=${4} HOMEDIR=${5} EMAIL=${6} pw useradd -D -u ${UID} -g ${GID} pw useradd ${USER} -s ${SHELL} -d ${HOMEDIR}/${USER} -c "${EMAIL}" -m echo "${PWD}" | pw usermod -n ${USER} -h 0 fi if [ ${ACTION} = "DEL" ] then USER=${2} pw useradd -D -u ${UID} -g ${GID} pw userdel -r -n ${USER} fi if [ ${ACTION} = "PWD" ] then USER=${2} PWD=${3} pw useradd -D -u ${UID} -g ${GID} echo "${PWD}" | pw usermod -n ${USER} -h 0 fi if [ ${ACTION} = "SHL" ] then USER=${2} SHELL=${3} pw useradd -D -u ${UID} -g ${GID} pw usermod -n ${USER} -s ${SHELL} fi # mail-restart if [ ${ACTION} = "MAL" ] || [ ${ACTION} = "FWD" ] then ( echo -n "cp ${VIRT_FILE} ${VIRT_BAK}" && cp ${VIRT_FILE} ${VIRT_BAK} ) && echo ${OK} || echo ${KO} ( echo -n "cp ${LHN_FILE} ${LHN_BAK}" && cp ${LHN_FILE} ${LHN_BAK} ) && echo ${OK} || echo ${KO} echo "" ( echo -n "cat ${VIRT_TOP} > ${VIRT_FILE}" && cat ${VIRT_TOP} > ${VIRT_FILE} ) && echo ${OK} || echo ${KO} ( echo -n "cat ${LHN_TOP} > ${LHN_FILE}" && cat ${LHN_TOP} > ${LHN_FILE} ) && echo ${OK} || echo ${KO} if [ ${ACTION} = "MAL" ]; then QUERY1="select email,login,domain from MAILUSER order by domain;"; QUERY2="select domain from MAILUSER;" else QUERY1="select email,fwdaddr,domain from FWDUSER order by domain;" QUERY2="select domain from FWDUSER;" fi echo "" ( echo -n "${QUERY1} > ${VIRT_FILE} " && /usr/local/bin/sqlite3 db/petar.db3 "${QUERY1}" | awk -F '|' 'BEGIN{print "#\n### Petar generated using petar.db3\n#"}{printf "%-30s %s\n", $1, $2 }' >> ${VIRT_FILE} ) && echo ${OK} || echo ${KO} ( echo -n "${QUERY2} > ${LHN_FILE}" && /usr/local/bin/sqlite3 db/petar.db3 "${QUERY2}" | sort | uniq > ${LHN_FILE} ) && echo ${OK} || echo ${KO} fi # mail-restart if [ ${ACTION} = "SRV" ] then cd /etc/mail make && echo ${OK} || echo ${KO} echo "" make install && echo ${OK} || echo ${KO} echo "" make restart && echo ${OK} || echo ${KO} fi