diff options
author | Koen Vandeputte <koen.vandeputte@ncentric.com> | 2016-10-05 11:26:35 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2016-10-05 19:59:11 +0200 |
commit | 0f27096100a33421bff0d4539d428fe393eebe22 (patch) | |
tree | 76f6304d3a0df849d76a123dafc93c9254c102f0 /package/base-files/files | |
parent | 7659f9ad9e5d6ffea93bd73989535346f0b14131 (diff) | |
download | mtk-20170518-0f27096100a33421bff0d4539d428fe393eebe22.zip mtk-20170518-0f27096100a33421bff0d4539d428fe393eebe22.tar.gz mtk-20170518-0f27096100a33421bff0d4539d428fe393eebe22.tar.bz2 |
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 <koen.vandeputte@ncentric.com>
Diffstat (limited to 'package/base-files/files')
-rwxr-xr-x | package/base-files/files/bin/board_detect | 4 | ||||
-rwxr-xr-x | package/base-files/files/bin/config_generate | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/package/base-files/files/bin/board_detect b/package/base-files/files/bin/board_detect index f9640f0..441db6a 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 80ed61b..80e5c9f 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 |