* luci/contrib/addons: add luci_hosts infrastructure
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 6 Sep 2008 17:20:27 +0000 (17:20 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 6 Sep 2008 17:20:27 +0000 (17:20 +0000)
contrib/package/luci-addons/Makefile
contrib/package/luci-addons/dist/etc/config/luci_hosts [new file with mode: 0644]
contrib/package/luci-addons/dist/etc/init.d/luci_hosts [new file with mode: 0644]

index 04b1a2f450f6c0c0a86771c7a37e8778f6675bdf..aab8485d9490214285ee23807b43fe0a1b385a0f 100644 (file)
@@ -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 (file)
index 0000000..6221df7
--- /dev/null
@@ -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 (file)
index 0000000..42ccff4
--- /dev/null
@@ -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
+}