فهرست منبع

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 <[email protected]>
Koen Vandeputte 9 سال پیش
والد
کامیت
0f27096100
2فایلهای تغییر یافته به همراه6 افزوده شده و 6 حذف شده
  1. 2 2
      package/base-files/files/bin/board_detect
  2. 4 4
      package/base-files/files/bin/config_generate

+ 2 - 2
package/base-files/files/bin/board_detect

@@ -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

+ 4 - 4
package/base-files/files/bin/config_generate

@@ -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
-[ -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() {
 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