diff options
author | John Crispin <blogic@openwrt.org> | 2014-02-18 13:33:40 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2014-02-18 13:33:40 +0000 |
commit | 6cd00fa25cf595a729264418d25470ba4ad73083 (patch) | |
tree | a437a5380ff266fa8af92bdef6ba1f9b534dda5d /package/base-files | |
parent | e2af138349ebc13b30139b3d3367200789746b8f (diff) | |
download | upstream-6cd00fa25cf595a729264418d25470ba4ad73083.tar.gz upstream-6cd00fa25cf595a729264418d25470ba4ad73083.tar.bz2 upstream-6cd00fa25cf595a729264418d25470ba4ad73083.zip |
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 <blogic@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39615 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files')
-rwxr-xr-x | package/base-files/files/etc/init.d/boot | 33 | ||||
-rwxr-xr-x | package/base-files/files/etc/init.d/system | 51 |
2 files changed, 52 insertions, 32 deletions
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 +} |