From ee829e8c90259d5a456a0219d760711f0160535b Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Wed, 14 May 2014 14:22:06 +0200
Subject: [PATCH] gluon-radvd: replace pregenerated config file with Lua script

---
 package/gluon-radvd/Makefile                       |  4 +---
 package/gluon-radvd/files/etc/init.d/gluon-radvd   |  9 ++++++++-
 .../files/lib/gluon/radvd/generate_config          | 14 ++++++++++++++
 .../generate/lib/gluon/radvd/radvd.conf            | 10 ----------
 4 files changed, 23 insertions(+), 14 deletions(-)
 create mode 100755 package/gluon-radvd/files/lib/gluon/radvd/generate_config
 delete mode 100644 package/gluon-radvd/generate/lib/gluon/radvd/radvd.conf

diff --git a/package/gluon-radvd/Makefile b/package/gluon-radvd/Makefile
index 6421b4a5a..2b99c2835 100644
--- a/package/gluon-radvd/Makefile
+++ b/package/gluon-radvd/Makefile
@@ -1,8 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gluon-radvd
-PKG_VERSION:=1
-PKG_RELEASE:=1.$(GLUON_CONFIG_VERSION)
+PKG_VERSION:=2
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
@@ -31,7 +30,6 @@ endef
 
 define Package/gluon-radvd/install
 	$(CP) ./files/* $(1)/
-	$(GLUON_GENERATE) ./generate/* $(1)/
 endef
 
 $(eval $(call BuildPackage,gluon-radvd))
diff --git a/package/gluon-radvd/files/etc/init.d/gluon-radvd b/package/gluon-radvd/files/etc/init.d/gluon-radvd
index 2cfe09800..83814d506 100755
--- a/package/gluon-radvd/files/etc/init.d/gluon-radvd
+++ b/package/gluon-radvd/files/etc/init.d/gluon-radvd
@@ -7,12 +7,19 @@ SERVICE_NAME=gluon-radvd
 SERVICE_PID_DIR=/var/run/gluon-radvd
 SERVICE_PID_FILE="$SERVICE_PID_DIR"/gluon-radvd.pid
 
+radvd_conf=/var/gluon/radvd/radvd.conf
+
 start() {
 	mkdir -p "$SERVICE_PID_DIR"
 	chown gluon-radvd "$SERVICE_PID_DIR"
-	service_start /usr/sbin/radvd -C /lib/gluon/radvd/radvd.conf -m stderr_syslog -u gluon-radvd -p "$SERVICE_PID_FILE"
+
+	mkdir -p "$(dirname "$radvd_conf")"
+	/lib/gluon/radvd/generate_config > "$radvd_conf"
+
+	service_start /usr/sbin/radvd -C "$radvd_conf" -m stderr_syslog -u gluon-radvd -p "$SERVICE_PID_FILE"
 }
 
 stop() {
 	service_stop /usr/sbin/radvd
+	rm "$radvd_conf"
 }
diff --git a/package/gluon-radvd/files/lib/gluon/radvd/generate_config b/package/gluon-radvd/files/lib/gluon/radvd/generate_config
new file mode 100755
index 000000000..7c0e3a92c
--- /dev/null
+++ b/package/gluon-radvd/files/lib/gluon/radvd/generate_config
@@ -0,0 +1,14 @@
+#!/usr/bin/lua
+
+local site = require 'gluon.site_config'
+
+print([[
+interface br-client
+{
+	IgnoreIfMissing on;
+	AdvSendAdvert on;
+	AdvDefaultLifetime 0;
+
+	prefix ]] .. site.prefix6 .. [[ {};
+};
+]])
diff --git a/package/gluon-radvd/generate/lib/gluon/radvd/radvd.conf b/package/gluon-radvd/generate/lib/gluon/radvd/radvd.conf
deleted file mode 100644
index d112f6fc9..000000000
--- a/package/gluon-radvd/generate/lib/gluon/radvd/radvd.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-interface br-client
-{
-	IgnoreIfMissing on;
-	AdvSendAdvert on;
-	AdvDefaultLifetime 0;
-
-	prefix @prefix6@
-	{
-	};
-};
-- 
GitLab