#!/bin/bash

USERNAME="${1}"
if [ -z "${USERNAME}" ] ; then
    echo "Usage: ${0} ftpusername"
    exit 1
fi

FTPHOME=/home/ftpuser

ln -sfv /etc/pure-ftpd/pureftpd.passwd /etc/pureftpd.passwd
ln -sfv /etc/pure-ftpd/pureftpd.pdb /etc/pureftpd.pdb
ln -sfv /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/PureDB

if [ ! -d "${FTPHOME}" ] ; then
    mkdir -vp "${FTPHOME}"
    chown -vR ftpuser:ftpgroup "${FTPHOME}"
    # Add standard 'user' account to the 'ftpgroup'
    usermod -a -G ftpgroup user
fi

if [ ! -d "${FTPHOME}/public" ] ; then
    mkdir -vp "${FTPHOME}/public"
    chown -vR ftpuser:ftpgroup "${FTPHOME}/public"
    chmod 775 "${FTPHOME}/public"
fi

pure-pw useradd ${USERNAME} -u ftpuser -d ${FTPHOME}/${USERNAME}
_rc=$?
if [ ${_rc} -eq 0 ] ; then
    mkdir -vp ${FTPHOME}/${USERNAME}
    mkdir -vp ${FTPHOME}/${USERNAME}/public
    chown -vR ftpuser:ftpgroup ${FTPHOME}/${USERNAME}
    mount --bind ${FTPHOME}/public ${FTPHOME}/${USERNAME}/public
    pure-pw mkdb
    _rc=$?
fi

exit ${_rc}
