From: Jo-Philipp Wich Date: Sat, 6 Sep 2008 17:20:27 +0000 (+0000) Subject: * luci/contrib/addons: add luci_hosts infrastructure X-Git-Tag: 0.9.0~1406 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=be767cb726d23a4e2daa27f8b4ecde161c15c0ed;p=oweals%2Fluci.git * luci/contrib/addons: add luci_hosts infrastructure --- diff --git a/contrib/package/luci-addons/Makefile b/contrib/package/luci-addons/Makefile index 04b1a2f45..aab8485d9 100644 --- a/contrib/package/luci-addons/Makefile +++ b/contrib/package/luci-addons/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-addons -PKG_VERSION:=0.2 +PKG_VERSION:=0.3 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) @@ -32,8 +32,10 @@ define Package/luci-addons/install $(INSTALL_BIN) ./dist/sbin/luci-flash $(1)/sbin $(INSTALL_BIN) ./dist/etc/init.d/luci_fixtime $(1)/etc/init.d $(INSTALL_BIN) ./dist/etc/init.d/luci_ethers $(1)/etc/init.d + $(INSTALL_BIN) ./dist/etc/init.d/luci_hosts $(1)/etc/init.d $(INSTALL_CONF) ./dist/etc/config/luci_ethers $(1)/etc/config + $(INSTALL_CONF) ./dist/etc/config/luci_hosts $(1)/etc/config $(CP) ./dist/etc/crontabs/root $(1)/etc/crontabs/root endef diff --git a/contrib/package/luci-addons/dist/etc/config/luci_hosts b/contrib/package/luci-addons/dist/etc/config/luci_hosts new file mode 100644 index 000000000..6221df72d --- /dev/null +++ b/contrib/package/luci-addons/dist/etc/config/luci_hosts @@ -0,0 +1,3 @@ +config 'host' + option 'ipaddr' '10.11.12.13' + option 'hostname' 'sample-host' diff --git a/contrib/package/luci-addons/dist/etc/init.d/luci_hosts b/contrib/package/luci-addons/dist/etc/init.d/luci_hosts new file mode 100644 index 000000000..42ccff471 --- /dev/null +++ b/contrib/package/luci-addons/dist/etc/init.d/luci_hosts @@ -0,0 +1,30 @@ +#!/bin/sh /etc/rc.common +START=60 + +apply_host() { + local cfg="$1" + + config_get hostname "$cfg" hostname + config_get ipaddr "$cfg" ipaddr + + [ -n "$hostname" -a -n "$ipaddr" ] || return 0 + + echo "$ipaddr $hostname" >> /var/etc/hosts +} + +start() { + if [ ! -L /etc/hosts ]; then + test -f /etc/hosts && mv /etc/hosts /etc/hosts.local + ln -s /var/etc/hosts /etc/hosts + fi + + test -d /var/etc || mkdir -p /var/etc + test -f /etc/hosts.local && cat /etc/hosts.local >> /var/etc/hosts + + config_load luci_hosts + config_foreach apply_host host +} + +stop() { + test -f /var/etc/hosts && rm -f /var/etc/hosts +}