#!/bin/sh

exec 1>/dev/null 2>&1

PATH_PREFIX=/var/bftpd
# The max size for ${PATH_PREFIX} is 2M.
BFTPD_DIR_MAX_SIZE=512

BFTPD_ANONY_RW_CONF=/data/config/bftpd/bftpd_anon_rw.conf
BFTPD_SIGNED_RW_CONF=/data/config/bftpd/bftpd_signed_rw.conf
BFTPD_PASSWD_FILE=/data/config/bftpd/ftpdpassword

SS_USERNAME=`uci get storageshare.property.username`
SS_PASSWD=`uci get storageshare.property.password`
SDCARD_PATH=/media/card

# Ensure the daemon has been killed.
stop_bftpd

# Restrict the size of bftpd data directory.
if [ -d ${PATH_PREFIX} ]
    then
        bftpd_dir_size=`busybox du -s ${PATH_PREFIX} | busybox cut -f 1`
        if [ ${bftpd_dir_size} -ge ${BFTPD_DIR_MAX_SIZE} ]
            then
                echo "rm /var/bftpd/*"
                busybox rm -rf ${PATH_PREFIX}/*
        fi
fi

busybox mkdir -p ${PATH_PREFIX}/log
busybox mkdir -p ${PATH_PREFIX}/run

# Clean the log and tmp files.
busybox rm -rf ${PATH_PREFIX}/log/*
busybox touch ${PATH_PREFIX}/log/bftpd.log

# Start the daemons
case "$1" in
  anonrw)
    echo "Start bftpd anon rw"
    bftpd -d -c ${BFTPD_ANONY_RW_CONF}
    ;;
  signed)
    echo "add ftp password file"
    echo ${SS_USERNAME} > ${BFTPD_PASSWD_FILE}
    echo -E ${SS_PASSWD} >> ${BFTPD_PASSWD_FILE}
    echo ${SDCARD_PATH} >> ${BFTPD_PASSWD_FILE}
    echo "Start bftpd signed rw"
    bftpd -d -c ${BFTPD_SIGNED_RW_CONF}
    ;;
  *)
    echo "Err: unknown param"
    exit 1
    ;;
esac

exit $?
