Previous implementation was blocking the init and breaking halt/reboot/sysupgrade (reported by Daniel Golle) v2: use procd logging, use set -e + trap for error handling Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com> Tested-by: Daniel Golle <daniel@makrotopia.org>
		
			
				
	
	
		
			21 lines
		
	
	
		
			398 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			398 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
set -e
 | 
						|
 | 
						|
trap '[ "$?" -eq 0 ] || echo "An error occured" >&2' EXIT
 | 
						|
 | 
						|
save() {
 | 
						|
    touch "$1.tmp"
 | 
						|
    chown root:root "$1.tmp"
 | 
						|
    chmod 600 "$1.tmp"
 | 
						|
    getrandom 512 > "$1.tmp"
 | 
						|
    mv "$1.tmp" "$1"
 | 
						|
    echo "Seed saved ($1)"
 | 
						|
}
 | 
						|
 | 
						|
SEED="$(uci -q get system.@system[0].urandom_seed || true)"
 | 
						|
[ "${SEED:0:1}" == "/" ] && save "$SEED"
 | 
						|
 | 
						|
SEED=/etc/urandom.seed
 | 
						|
[ ! -f $SEED ] && save "$SEED"
 | 
						|
true
 |