#!/bin/sh

add_dogecoin_user() {
    # If the dogecoin user does not exist, create it.
    if ! grep -q -E '^dogecoin:' /etc/passwd; then
        echo "Could not find user 'dogecoin' - creating user 'dogecoin' with disabled password"
        adduser --gecos "" --disabled-password dogecoin
    fi
}

rand_str() {
     echo $(cat /dev/urandom | tr -dc "0-9A-Fa-f" | head -c 30)
}

gen_dogecoin_conf() {
    if [ ! -d "/home/dogecoin/.dogecoin" ]; then
        echo " >> Folder /home/dogecoin/.dogecoin does not exist. Creating it..."
        mkdir -p /home/dogecoin/.dogecoin
        chown dogecoin:dogecoin /home/dogecoin/.dogecoin
    fi
    if [ ! -f "/home/dogecoin/.dogecoin/dogecoin.conf" ]; then
        echo " >> Generating basic default dogecoin.conf into: /home/dogecoin/.dogecoin/dogecoin.conf"
        cat > /home/dogecoin/.dogecoin/dogecoin.conf <<EOF
rpcuser=dogecoin
rpcpassword=$(rand_str)
rpcallowip=127.0.0.1
rpcallowip=::1
server=1
listen=1
daemon=1
logtimestamps=1
maxconnections=64

EOF
        chmod 700 /home/dogecoin/.dogecoin/dogecoin.conf
        chown dogecoin:dogecoin /home/dogecoin/.dogecoin/dogecoin.conf
    fi
}

if [ "$1" = "install" ]; then
    if [ "$#" -gt 1 ]; then
        # before the removed package is upgraded
        add_dogecoin_user
        gen_dogecoin_conf
    else
        # before the package is fresh(?) installed
        add_dogecoin_user
        gen_dogecoin_conf
    fi
elif [ "$1" = "upgrade" ]; then
    # 2 = old-version 3 = new-version
    # before the package is upgraded
    add_dogecoin_user
#elif [ "$1" = "abort-upgrade" ]; then
    # If postrm fails during upgrade or fails on failed upgrade
fi

