From 7917a87d121fa5b805ea09daf3463ad1fae3c3f1 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 18 Feb 2014 13:33:40 +0000 Subject: [PATCH] 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 SVN-Revision: 39615 --- package/base-files/files/etc/init.d/boot | 33 +------------- package/base-files/files/etc/init.d/system | 51 ++++++++++++++++++++++ 2 files changed, 52 insertions(+), 32 deletions(-) create mode 100755 package/base-files/files/etc/init.d/system diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot index 8b5455d8bc..45cb4a2596 100755 --- a/package/base-files/files/etc/init.d/boot +++ b/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 diff --git a/package/base-files/files/etc/init.d/system b/package/base-files/files/etc/init.d/system new file mode 100755 index 0000000000..24a9fdee68 --- /dev/null +++ b/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 +} -- 2.30.2