From 0f27096100a33421bff0d4539d428fe393eebe22 Mon Sep 17 00:00:00 2001 From: Koen Vandeputte Date: Wed, 5 Oct 2016 11:26:35 +0200 Subject: base-files: also generate configs when current is empty (FS#193) Before a configuration is generated, an empty file is created to store it in. (required by UCI) If something happens during config generation (power cut, interruption, ..) an empty file exists and it is never regenerated again, causing some daemons to fail starting (NTPD, logread, ..) Fix this by also generating new configs if a critical file is empty. Signed-off-by: Koen Vandeputte --- package/base-files/files/bin/board_detect | 4 ++-- package/base-files/files/bin/config_generate | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'package/base-files/files/bin') diff --git a/package/base-files/files/bin/board_detect b/package/base-files/files/bin/board_detect index f9640f0388..441db6a08f 100755 --- a/package/base-files/files/bin/board_detect +++ b/package/base-files/files/bin/board_detect @@ -4,11 +4,11 @@ CFG=$1 [ -n "$CFG" ] || CFG=/etc/board.json -[ -d "/etc/board.d/" -a ! -f "$CFG" ] && { +[ -d "/etc/board.d/" -a ! -s "$CFG" ] && { for a in `ls /etc/board.d/*`; do [ -x $a ] || continue; $(. $a) done } -[ -f "$CFG" ] || return 1 +[ -s "$CFG" ] || return 1 diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 80ed61b9e2..80e5c9f474 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -4,8 +4,8 @@ CFG=/etc/board.json . /usr/share/libubox/jshn.sh -[ -f $CFG ] || /bin/board_detect || exit 1 -[ -f /etc/config/network -a -f /etc/config/system ] && exit 0 +[ -s $CFG ] || /bin/board_detect || exit 1 +[ -s /etc/config/network -a -s /etc/config/system ] && exit 0 generate_static_network() { uci -q batch <<-EOF @@ -401,7 +401,7 @@ generate_gpioswitch() { json_init json_load "$(cat ${CFG})" -if [ ! -f /etc/config/network ]; then +if [ ! -s /etc/config/network ]; then touch /etc/config/network generate_static_network @@ -412,7 +412,7 @@ if [ ! -f /etc/config/network ]; then for key in $keys; do generate_switch $key; done fi -if [ ! -f /etc/config/system ]; then +if [ ! -s /etc/config/system ]; then touch /etc/config/system generate_static_system -- cgit v1.2.3