2
0
Эх сурвалжийг харах

base-files: split /etc/init.d/boot into 2 files

this allows us to bind a procd trigger to system.@system[-1]

Signed-off-by: John Crispin <[email protected]>

SVN-Revision: 39615
John Crispin 11 жил өмнө
parent
commit
7917a87d12

+ 1 - 32
package/base-files/files/etc/init.d/boot

@@ -4,37 +4,6 @@
 START=10
 STOP=98
 
-system_config() {
-	local cfg="$1"
-
-	local hostname conloglevel buffersize timezone zonename
-
-	config_get hostname "$cfg" hostname 'OpenWrt'
-	echo "$hostname" > /proc/sys/kernel/hostname
-
-	config_get conloglevel "$cfg" conloglevel
-	config_get buffersize "$cfg" buffersize
-	[ -z "$conloglevel" -a -z "$buffersize" ] || dmesg ${conloglevel:+-n $conloglevel} ${buffersize:+-s $buffersize}
-
-	config_get timezone "$cfg" timezone 'UTC'
-	echo "$timezone" > /tmp/TZ
-
-	config_get zonename "$cfg" zonename
-	[ -n "$zonename" ] && [ -f "/usr/share/zoneinfo/$zonename" ] && ln -s "/usr/share/zoneinfo/$zonename" /tmp/localtime
-
-	# apply timezone to kernel
-	date -k
-}
-
-apply_uci_config() {
-	sh -c '. /lib/functions.sh; include /lib/config; uci_apply_defaults'
-}
-
-start() {
-	config_load system
-	config_foreach system_config system
-}
-
 boot() {
 	[ -f /proc/mounts ] || /sbin/mount_root
 	[ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc
@@ -64,7 +33,7 @@ boot() {
 	}
 	rm -f /tmp/wireless.tmp
 
-	apply_uci_config
+	sh -c '. /lib/functions.sh; include /lib/config; uci_apply_defaults'
 	
 	# temporary hack until configd exists
 	/sbin/reload_config

+ 51 - 0
package/base-files/files/etc/init.d/system

@@ -0,0 +1,51 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2014 OpenWrt.org
+
+START=10
+USE_PROCD=1
+
+validate_system_section()
+{
+	uci_validate_section system system "${1}" \
+		'hostname:string:OpenWrt' \
+		'conloglevel:uinteger' \
+		'buffersize:uinteger' \
+		'timezone:string:UTC' \
+		'zonename:string'
+
+	return $?
+}
+
+system_config() {
+	local cfg="$1"
+
+	local hostname conloglevel buffersize timezone zonename
+
+	validate_system_section "${1}" || {
+		echo "validation failed"
+		return 1
+	}
+
+	echo "$hostname" > /proc/sys/kernel/hostname
+	[ -z "$conloglevel" -a -z "$buffersize" ] || dmesg ${conloglevel:+-n $conloglevel} ${buffersize:+-s $buffersize}
+	echo "$timezone" > /tmp/TZ
+	[ -n "$zonename" ] && [ -f "/usr/share/zoneinfo/$zonename" ] && ln -s "/usr/share/zoneinfo/$zonename" /tmp/localtime
+
+	# apply timezone to kernel
+	date -k
+}
+
+reload_service() {
+	config_load system
+	config_foreach system_config system
+}
+
+service_triggers()
+{
+	procd_add_reload_trigger "system"
+	procd_add_validation validate_system_section
+}
+
+start_service() {
+	reload_service
+}