From c2cda254ae277b9890041a5ebc6bd14957ec9bb1 Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Mon, 24 Feb 2014 05:06:34 +0100
Subject: [PATCH] Rename gluon-location to gluon-node-info, add owner section

---
 package/gluon-alfred/Makefile                  |  2 +-
 .../files/lib/gluon/alfred/announce.sh         | 12 +++++++++---
 package/gluon-config-mode/Makefile             |  2 +-
 .../model/cbi/gluon-config-mode/wizard.lua     | 18 +++++++++---------
 .../files/etc/config/gluon-location            |  4 ----
 .../Makefile                                   | 14 +++++++-------
 .../files/etc/config/gluon-node-info           |  4 ++++
 .../node-info/invariant/010-migrate-location   | 15 +++++++++++++++
 8 files changed, 46 insertions(+), 25 deletions(-)
 delete mode 100644 package/gluon-location/files/etc/config/gluon-location
 rename package/{gluon-location => gluon-node-info}/Makefile (55%)
 create mode 100644 package/gluon-node-info/files/etc/config/gluon-node-info
 create mode 100755 package/gluon-node-info/files/lib/gluon/upgrade/node-info/invariant/010-migrate-location

diff --git a/package/gluon-alfred/Makefile b/package/gluon-alfred/Makefile
index 176ba9b4b..80160f162 100644
--- a/package/gluon-alfred/Makefile
+++ b/package/gluon-alfred/Makefile
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/gluon-alfred
   SECTION:=gluon
   CATEGORY:=Gluon
-  DEPENDS:=+gluon-core +gluon-location +gluon-cron +alfred +ethtool
+  DEPENDS:=+gluon-core +gluon-node-info +gluon-cron +alfred +ethtool
   TITLE:=Configure alfred
 endef
 
diff --git a/package/gluon-alfred/files/lib/gluon/alfred/announce.sh b/package/gluon-alfred/files/lib/gluon/alfred/announce.sh
index 1788af48d..52fc93ed6 100755
--- a/package/gluon-alfred/files/lib/gluon/alfred/announce.sh
+++ b/package/gluon-alfred/files/lib/gluon/alfred/announce.sh
@@ -21,13 +21,19 @@ set -e
 json_init
 json_add_string "hostname" "$(uci get 'system.@system[0].hostname')"
 
-if [ "$(uci -q get 'gluon-location.@location[0].share_location')" = 1 ]; then
+if [ "$(uci -q get 'gluon-node-info.@location[0].share_location')" = 1 ]; then
 json_add_object "location"
-	json_add_double "latitude" "$(uci get 'gluon-location.@location[0].latitude')"
-	json_add_double "longitude" "$(uci get 'gluon-location.@location[0].longitude')"
+	json_add_double "latitude" "$(uci get 'gluon-node-info.@location[0].latitude')"
+	json_add_double "longitude" "$(uci get 'gluon-node-info.@location[0].longitude')"
 json_close_object # location
 fi
 
+if [ -n "$(uci -q get 'gluon-node-info.@owner[0].contact')" ]; then
+json_add_object "owner"
+	json_add_string "contact" "$(uci get 'gluon-node-info.@owner[0].contact')"
+json_close_object # owner
+fi
+
 json_add_object "software"
 	json_add_object "firmware"
 		json_add_string "base" "gluon"
diff --git a/package/gluon-config-mode/Makefile b/package/gluon-config-mode/Makefile
index 4d52bd29b..e5131e182 100644
--- a/package/gluon-config-mode/Makefile
+++ b/package/gluon-config-mode/Makefile
@@ -15,7 +15,7 @@ define Package/gluon-config-mode
   SECTION:=gluon
   CATEGORY:=Gluon
   TITLE:=Luci based config mode for user friendly setup of new meshnodes
-  DEPENDS:=+gluon-luci-core +gluon-lock-password +gluon-location +gluon-simple-tc +uhttpd +dnsmasq +ip
+  DEPENDS:=+gluon-luci-core +gluon-lock-password +gluon-node-info +gluon-simple-tc +uhttpd +dnsmasq +ip
 endef
 
 define Package/gluon-config-mode/description
diff --git a/package/gluon-config-mode/files/usr/lib/lua/luci/model/cbi/gluon-config-mode/wizard.lua b/package/gluon-config-mode/files/usr/lib/lua/luci/model/cbi/gluon-config-mode/wizard.lua
index a96993f7e..61d7e7a14 100644
--- a/package/gluon-config-mode/files/usr/lib/lua/luci/model/cbi/gluon-config-mode/wizard.lua
+++ b/package/gluon-config-mode/files/usr/lib/lua/luci/model/cbi/gluon-config-mode/wizard.lua
@@ -53,17 +53,17 @@ zu können, benötigen wir seine Koordinaten. Hier hast du die Möglichkeit,
 diese zu hinterlegen.]])
 
 o = s:option(Flag, "_location", "Knoten auf der Karte anzeigen")
-o.default = uci:get_first("gluon-location", "location", "share_location", o.disabled)
+o.default = uci:get_first("gluon-node-info", "location", "share_location", o.disabled)
 o.rmempty = false
 
 o = s:option(Value, "_latitude", "Breitengrad")
-o.default = string.format("%f", uci:get_first("gluon-location", "location", "latitude", "0"))
+o.default = string.format("%f", uci:get_first("gluon-node-info", "location", "latitude", "0"))
 o.rmempty = false
 o.datatype = "float"
 o.description = "z.B. 53.873621"
 
 o = s:option(Value, "_longitude", "Längengrad")
-o.default = string.format("%f", uci:get_first("gluon-location", "location", "longitude", "0"))
+o.default = string.format("%f", uci:get_first("gluon-node-info", "location", "longitude", "0"))
 o.rmempty = false
 o.datatype = "float"
 o.description = "z.B. 10.689901"
@@ -103,13 +103,13 @@ function f.handle(self, state, data)
     uci:save("system")
     uci:commit("system")
 
-    uci:foreach("gluon-location", "location", function(s)
-            uci:set("gluon-location", s[".name"], "share_location", data._location)
-            uci:set("gluon-location", s[".name"], "latitude", data._latitude)
-            uci:set("gluon-location", s[".name"], "longitude", data._longitude)
+    uci:foreach("gluon-node-info", "location", function(s)
+            uci:set("gluon-node-info", s[".name"], "share_location", data._location)
+            uci:set("gluon-node-info", s[".name"], "latitude", data._latitude)
+            uci:set("gluon-node-info", s[".name"], "longitude", data._longitude)
             end)
-    uci:save("gluon-location")
-    uci:commit("gluon-location")
+    uci:save("gluon-node-info")
+    uci:commit("gluon-node-info")
 
     luci.http.redirect(luci.dispatcher.build_url("gluon-config-mode", "reboot"))
   end
diff --git a/package/gluon-location/files/etc/config/gluon-location b/package/gluon-location/files/etc/config/gluon-location
deleted file mode 100644
index 3b102caeb..000000000
--- a/package/gluon-location/files/etc/config/gluon-location
+++ /dev/null
@@ -1,4 +0,0 @@
-config location
-	option share_location '0'
-	option latitude '0.000000'
-	option longitude '0.000000'
diff --git a/package/gluon-location/Makefile b/package/gluon-node-info/Makefile
similarity index 55%
rename from package/gluon-location/Makefile
rename to package/gluon-node-info/Makefile
index f1dd73522..b509e992e 100644
--- a/package/gluon-location/Makefile
+++ b/package/gluon-node-info/Makefile
@@ -1,6 +1,6 @@
 include $(TOPDIR)/rules.mk
 
-PKG_NAME:=gluon-location
+PKG_NAME:=gluon-node-info
 PKG_VERSION:=1
 PKG_RELEASE:=1
 
@@ -8,15 +8,15 @@ PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/gluon-location
+define Package/gluon-node-info
   SECTION:=gluon
   CATEGORY:=Gluon
-  TITLE:=Add /etc/config/gluon-location to uci
+  TITLE:=Add /etc/config/gluon-node-info to uci
   DEPENDS:=+gluon-core
 endef
 
-define Package/gluon-location/description
-	This packages creates /etc/config/gluon-location.
+define Package/gluon-node-info/description
+	This packages creates /etc/config/gluon-node-info.
 endef
 
 define Build/Prepare
@@ -29,8 +29,8 @@ endef
 define Build/Compile
 endef
 
-define Package/gluon-location/install
+define Package/gluon-node-info/install
 	$(CP) ./files/* $(1)/
 endef
 
-$(eval $(call BuildPackage,gluon-location))
+$(eval $(call BuildPackage,gluon-node-info))
diff --git a/package/gluon-node-info/files/etc/config/gluon-node-info b/package/gluon-node-info/files/etc/config/gluon-node-info
new file mode 100644
index 000000000..9ac6ec553
--- /dev/null
+++ b/package/gluon-node-info/files/etc/config/gluon-node-info
@@ -0,0 +1,4 @@
+config location
+	option share_location '0'
+
+config owner
diff --git a/package/gluon-node-info/files/lib/gluon/upgrade/node-info/invariant/010-migrate-location b/package/gluon-node-info/files/lib/gluon/upgrade/node-info/invariant/010-migrate-location
new file mode 100755
index 000000000..14b4b8b8f
--- /dev/null
+++ b/package/gluon-node-info/files/lib/gluon/upgrade/node-info/invariant/010-migrate-location
@@ -0,0 +1,15 @@
+#!/bin/sh
+# This is a temporary upgrade script for an upgrade between experimental versions. It should be removed before the first Gluon release
+
+. /lib/functions.sh
+
+
+if [ -e /etc/config/gluon-location ]; then
+	uci_set gluon-node-info '@location[0]' share_location "$(uci get gluon-location.@location[0].share_location)"
+	uci_set gluon-node-info '@location[0]' latitude "$(uci get gluon-location.@location[0].latitude)"
+	uci_set gluon-node-info '@location[0]' longitude "$(uci get gluon-location.@location[0].longitude)"
+
+	uci_commit gluon-node-info
+
+	rm /etc/config/gluon-location
+fi
-- 
GitLab