#!/bin/sh /etc/rc.common

START=99

EXTRA_COMMANDS="save"

_log() {
    logger -t urandom_seed "$1"
}

_save() {
    touch $1.tmp || { _log "touch $1 failed"; return; }
    chown root:root $1.tmp || { _log "chown $1 failed"; return; }
    chmod 600 $1.tmp || { _log "chmod $1 failed"; return; }
    getrandom 512 > $1.tmp || { _log "getrandom failed"; return; }
    mv $1.tmp $1 || { _log "mv $1 failed"; return; }
}

save() {
    SEED="$(uci -q get system.@system[0].urandom_seed)"
    [ "${SEED:0:1}" == "/" ] && _save "$SEED" && _log "Seed saved ($SEED)"

    SEED=/etc/urandom.seed
    [ ! -f $SEED ] && _save "$SEED" && _log "Seed saved ($SEED)"
}

boot() {
    save
}
