summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--contrib/package/luci-addons/Makefile4
-rw-r--r--contrib/package/luci-addons/dist/etc/config/luci_hosts3
-rw-r--r--contrib/package/luci-addons/dist/etc/init.d/luci_hosts30
3 files changed, 36 insertions, 1 deletions
diff --git a/contrib/package/luci-addons/Makefile b/contrib/package/luci-addons/Makefile
index 04b1a2f450..aab8485d94 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 0000000000..6221df72d7
--- /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 0000000000..42ccff4712
--- /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
+}