aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoen Vandeputte <koen.vandeputte@ncentric.com>2016-10-05 11:26:35 +0200
committerFelix Fietkau <nbd@nbd.name>2016-10-05 19:59:11 +0200
commit0f27096100a33421bff0d4539d428fe393eebe22 (patch)
tree76f6304d3a0df849d76a123dafc93c9254c102f0
parent7659f9ad9e5d6ffea93bd73989535346f0b14131 (diff)
downloadupstream-0f27096100a33421bff0d4539d428fe393eebe22.tar.gz
upstream-0f27096100a33421bff0d4539d428fe393eebe22.tar.bz2
upstream-0f27096100a33421bff0d4539d428fe393eebe22.zip
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>
-rwxr-xr-xpackage/base-files/files/bin/board_detect4
-rwxr-xr-xpackage/base-files/files/bin/config_generate8
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 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