Skip to content
Snippets Groups Projects
postinst 3.43 KiB
#!/bin/bash -e
. /usr/share/debconf/confmodule

DAP_CHAINS_NAME="cellframe"
DAP_APP_NAME="$DAP_CHAINS_NAME-node"
DAP_PREFIX="/opt/$DAP_APP_NAME"

DAP_CFG_TPL="$DAP_PREFIX/share/configs/$DAP_APP_NAME.cfg.tpl"

# Store write config to new if present smth
DAP_CFG="$DAP_PREFIX/etc/$DAP_APP_NAME.cfg"



# Check profile.d symlink

[ -e "/etc/profile.d/$DAP_APP_NAME.sh" ] && ln -sf $DAP_PREFIX/share/profile.d/$DAP_APP_NAME.sh /etc/profile.d/$DAP_APP_NAME.sh

# Init node config
if [ -e "$DAP_CFG" ]; then
    DAP_CFG="$DAP_PREFIX/etc/$DAP_APP_NAME.cfg.dpkg-new"
else
    DAP_CFG="$DAP_PREFIX/etc/$DAP_APP_NAME.cfg"
fi

cat $DAP_CFG_TPL > $DAP_CFG || true

db_get cellframe-node/debug_mode || true
sed -i "s/{DEBUG_MODE}/$RET/" $DAP_CFG  || true

db_get cellframe-node/auto_online || true
sed -i "s/{AUTO_ONLINE}/$RET/" $DAP_CFG  || true

db_get cellframe-node/debug_stream_headers || true
sed -i "s/{DEBUG_STREAM_HEADERS}/$RET/" $DAP_CFG  || true

db_get cellframe-node/server_enabled || true
sed -i "s/{SERVER_ENABLED}/$RET/" $DAP_CFG  || true

db_get cellframe-node/server_port || true
sed -i "s/{SERVER_PORT}/$RET/" $DAP_CFG  || true

db_get cellframe-node/server_addr || true
sed -i "s/{SERVER_ADDR}/$RET/" $DAP_CFG  || true



# Init kelvin-testnet
NET_NAME="kelvin-testnet"

db_get cellframe-node/kelvin_testnet_enable || true
if [ "$RET"="true" ]; then
    DAP_CFG_NET="$DAP_PREFIX/etc/network/$NET_NAME.cfg"
    DAP_CFG_NET_TPL="$DAP_PREFIX/share/configs/network/$NET_NAME.cfg.tpl"
    DAP_NET_CFG=""
    if [ -e "$DAP_CFG_NET" ]; then
	DAP_NET_CFG="$DAP_PREFIX/etc/network/$NET_NAME.cfg.dpkg-new"
    else
	DAP_NET_CFG="$DAP_PREFIX/etc/network/$NET_NAME.cfg"
    fi

    cat $DAP_CFG_NET_TPL > $DAP_NET_CFG || true
    db_get cellframe-node/kelvin_testnet_node_type || true
    NODE_TYPE=$RET
    sed -i "s/{NODE_TYPE}/$NODE_TYPE/" $DAP_NET_CFG  || true
fi

mkdir -p $DAP_PREFIX/var/log || true


cat /etc/passwd| grep cellframe-node || adduser --system --no-create-home --group --home /opt/cellframe-node cellframe-node

echo "[*] Check /etc/systemd/system/$DAP_APP_NAME.service file..."
if [ -f /etc/systemd/system/$DAP_APP_NAME.service ]; then
    echo "[*] Restarting $DAP_APP_NAME to implement changes"
    systemctl --system stop $DAP_APP_NAME  >> /dev/null|| true
    systemctl daemon-reload || true
    systemctl --system start $DAP_APP_NAME || true
else
    echo "[!] Installing $DAP_APP_NAME as systemd service (haven't found /etc/systemd/system/$DAP_APP_NAME.service)"
    ln -sf $DAP_PREFIX/share/$DAP_APP_NAME.service /etc/systemd/system/$DAP_APP_NAME.service || true
    systemctl --system enable $DAP_PREFIX/share/$DAP_APP_NAME.service || true
#    systemctl --system start $DAP_APP_NAME
    echo "[ ] Execute 'systemctl start $DAP_APP_NAME' to start $DAP_APP_NAME service"

    #USERMAN=`users | awk '{print $1}'`
    adduser --system --no-create-home --group --home /opt/cellframe-node cellframe-node || true
    #usermod -aG $DAP_CHAINS_NAME `users | awk '{print $1}'`
    for username in $(cat /etc/passwd | grep "/home" | cut -d ':' -f1); do
        usermod -aG cellframe-node $username
    done
    mkdir -p $DAP_PREFIX/var/{run,lib/ca,lib/wallet,lib/global_db} 
    touch $DAP_PREFIX/var/run/cellframe-node.pid 
    #chown -R $USERMAN:$USERMAN $DAP_PREFIX
    for filename in $(find $DAP_PREFIX); do
        if [ -d $filename ]; then
            chmod 0775 $filename
        else
            chmod 0664 $filename
        fi
    done
    chmod 0774 $DAP_PREFIX/bin/*
    echo "[*] Done"
fi