#! /bin/bash
# (c) by ennit interactive GmbH, 2015
# Author p.patzelt@3blocks.de

# Include defaults if available
if [ -f /etc/default/hosting-tools ]; then
    . /etc/default/hosting-tools
fi

if [ "$#" -lt 3 ]; then
    echo "  [USAGE] $0 username password absolute-path ip[optional]"
    exit 1
fi

SIZE_USER=${#1}
if [ "$SIZE_USER" -gt 32 ]; then
    echo "  [ERROR] Max length of username is 32, given username is $SIZE_USER characters long."
    exit 1
fi

SIZE_PASS=${#2}
if [ "$SIZE_PASS" -lt 12 ]; then
    echo "  [ERROR] Min length of password is 12, given password is $SIZE_PASS characters long."
    exit 1
fi

USERNAME=$1
PASSWORD=$2
CHROOT=$3

if [ -z $4 ]; then
    pure-pw show $USERNAME > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        pure-pw userdel $USERNAME  > /dev/null 2>&1
    fi
    echo "  Add ftp user '$FTP_USER'"
    (echo $PASSWORD; echo $PASSWORD) | pure-pw useradd $USERNAME -u $FTP_USER -d $CHROOT -m > /dev/null 2>&1
else
    SIZE_IP=${#4}
    if [ "$SIZE_IP" -lt 7 ] || [ "$SIZE_IP" -gt 15 ]; then
        echo "  [ERROR] Format of ip must be 123.123.123.123"
        exit 1
    fi
    IP=$4
    if [ $? -eq 0 ]; then
        pure-pw userdel $USERNAME  > /dev/null 2>&1
    fi
    (echo $PASSWORD; echo $PASSWORD) | pure-pw useradd $USERNAME -u $FTP_USER -d $CHROOT -r $IP -m > /dev/null 2>&1
fi

exit 0