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>
This commit is contained in:
Koen Vandeputte 2016-10-05 11:26:35 +02:00 committed by Felix Fietkau
parent 7659f9ad9e
commit 0f27096100
2 changed files with 6 additions and 6 deletions

View file

@ -4,11 +4,11 @@ CFG=$1
[ -n "$CFG" ] || CFG=/etc/board.json [ -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 for a in `ls /etc/board.d/*`; do
[ -x $a ] || continue; [ -x $a ] || continue;
$(. $a) $(. $a)
done done
} }
[ -f "$CFG" ] || return 1 [ -s "$CFG" ] || return 1

View file

@ -4,8 +4,8 @@ CFG=/etc/board.json
. /usr/share/libubox/jshn.sh . /usr/share/libubox/jshn.sh
[ -f $CFG ] || /bin/board_detect || exit 1 [ -s $CFG ] || /bin/board_detect || exit 1
[ -f /etc/config/network -a -f /etc/config/system ] && exit 0 [ -s /etc/config/network -a -s /etc/config/system ] && exit 0
generate_static_network() { generate_static_network() {
uci -q batch <<-EOF uci -q batch <<-EOF
@ -401,7 +401,7 @@ generate_gpioswitch() {
json_init json_init
json_load "$(cat ${CFG})" json_load "$(cat ${CFG})"
if [ ! -f /etc/config/network ]; then if [ ! -s /etc/config/network ]; then
touch /etc/config/network touch /etc/config/network
generate_static_network generate_static_network
@ -412,7 +412,7 @@ if [ ! -f /etc/config/network ]; then
for key in $keys; do generate_switch $key; done for key in $keys; do generate_switch $key; done
fi fi
if [ ! -f /etc/config/system ]; then if [ ! -s /etc/config/system ]; then
touch /etc/config/system touch /etc/config/system
generate_static_system generate_static_system