From 629409364b6560abb6dcd8df9e957b0679f5c10b Mon Sep 17 00:00:00 2001
From: Nils Schneider <nils@nilsschneider.net>
Date: Thu, 22 Jan 2015 22:52:25 +0100
Subject: [PATCH] gluon-setup-mode: allow skipping on first boot

By setting setup_mode.skip to true in site.conf the device will skip
setup mode on first boot.
---
 package/gluon-setup-mode/Makefile                |  5 +++++
 package/gluon-setup-mode/check_site.lua          |  2 ++
 .../upgrade/setup-mode/invariant/005-setup-mode  | 16 ++++++++++++++++
 3 files changed, 23 insertions(+)
 create mode 100644 package/gluon-setup-mode/check_site.lua
 create mode 100755 package/gluon-setup-mode/files/lib/gluon/upgrade/setup-mode/invariant/005-setup-mode

diff --git a/package/gluon-setup-mode/Makefile b/package/gluon-setup-mode/Makefile
index e926feec5..99799927e 100644
--- a/package/gluon-setup-mode/Makefile
+++ b/package/gluon-setup-mode/Makefile
@@ -35,4 +35,9 @@ define Package/gluon-setup-mode/install
 	$(CP) ./files/* $(1)/
 endef
 
+define Package/gluon-setup-mode/postinst
+#!/bin/sh
+$(call GluonCheckSite,check_site.lua)
+endef
+
 $(eval $(call BuildPackage,gluon-setup-mode))
diff --git a/package/gluon-setup-mode/check_site.lua b/package/gluon-setup-mode/check_site.lua
new file mode 100644
index 000000000..07baaad3f
--- /dev/null
+++ b/package/gluon-setup-mode/check_site.lua
@@ -0,0 +1,2 @@
+need_boolean('setup_mode.skip', false)
+
diff --git a/package/gluon-setup-mode/files/lib/gluon/upgrade/setup-mode/invariant/005-setup-mode b/package/gluon-setup-mode/files/lib/gluon/upgrade/setup-mode/invariant/005-setup-mode
new file mode 100755
index 000000000..ae59c7aaa
--- /dev/null
+++ b/package/gluon-setup-mode/files/lib/gluon/upgrade/setup-mode/invariant/005-setup-mode
@@ -0,0 +1,16 @@
+#!/usr/bin/lua
+
+local site = require 'gluon.site_config'
+local uci = require 'luci.model.uci'
+
+local c = uci.cursor()
+
+if site.setup_mode
+   and site.setup_mode.skip
+   and not c:get_first('gluon-setup-mode', 'setup_mode', 'configured', false) then
+     local name = c:get_first("gluon-setup-mode", "setup_mode")
+     c:set("gluon-setup-mode", name, "configured", 1)
+     c:save('gluon-setup-mode')
+     c:commit('gluon-setup-mode')
+end
+
-- 
GitLab