From 20eb857c1b593cd25db91514c76e686704a16060 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 14 May 2014 08:47:26 +0200 Subject: [PATCH] gluon-core: convert generated upgrade scripts to Lua --- gluon/gluon-core/Makefile | 5 ++-- .../upgrade/core/initial/010-gluon-system | 14 ++++++++++ .../upgrade/core/invariant/012-ntp-servers | 14 ++++++++++ .../{012-reboot-on-oom => 013-reboot-on-oom} | 0 .../files/usr/lib/lua/gluon/sysconfig.lua | 27 +++++++++++++++++++ .../upgrade/core/initial/010-gluon-system | 10 ------- .../upgrade/core/invariant/011-ntp-servers | 12 --------- 7 files changed, 57 insertions(+), 25 deletions(-) create mode 100755 gluon/gluon-core/files/lib/gluon/upgrade/core/initial/010-gluon-system create mode 100755 gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/012-ntp-servers rename gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/{012-reboot-on-oom => 013-reboot-on-oom} (100%) create mode 100644 gluon/gluon-core/files/usr/lib/lua/gluon/sysconfig.lua delete mode 100755 gluon/gluon-core/generate/lib/gluon/upgrade/core/initial/010-gluon-system delete mode 100755 gluon/gluon-core/generate/lib/gluon/upgrade/core/invariant/011-ntp-servers diff --git a/gluon/gluon-core/Makefile b/gluon/gluon-core/Makefile index 3dd2876..1282de3 100644 --- a/gluon/gluon-core/Makefile +++ b/gluon/gluon-core/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gluon-core PKG_VERSION:=2 -PKG_RELEASE:=1 +PKG_RELEASE:=$(GLUON_VERSION) PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) @@ -12,7 +12,7 @@ define Package/gluon-core SECTION:=gluon CATEGORY:=Gluon TITLE:=Base files of Gluon - DEPENDS:=+gluon-config +odhcp6c + DEPENDS:=+gluon-config +luci-lib-core +odhcp6c endef define Package/gluon-core/description @@ -31,7 +31,6 @@ endef define Package/gluon-core/install $(CP) ./files/* $(1)/ - $(GLUON_GENERATE) ./generate/* $(1)/ $(INSTALL_DIR) $(1)/lib/gluon echo "$(GLUON_VERSION)" > $(1)/lib/gluon/gluon-version diff --git a/gluon/gluon-core/files/lib/gluon/upgrade/core/initial/010-gluon-system b/gluon/gluon-core/files/lib/gluon/upgrade/core/initial/010-gluon-system new file mode 100755 index 0000000..27b052c --- /dev/null +++ b/gluon/gluon-core/files/lib/gluon/upgrade/core/initial/010-gluon-system @@ -0,0 +1,14 @@ +#!/usr/bin/lua + +local site = require 'gluon.site_config' +local sysconfig = require 'gluon.sysconfig' +local uci = require 'luci.model.uci' + +local c = uci.cursor() +local system = c:get_first('system', 'system') + +c:set('system', system, 'hostname', site.hostname_prefix .. '-' .. string.gsub(sysconfig.primary_mac, ':', '')) +c:set('system', system, 'timezone', site.timezone) + +c:save('system') +c:commit('system') diff --git a/gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/012-ntp-servers b/gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/012-ntp-servers new file mode 100755 index 0000000..2b3a2df --- /dev/null +++ b/gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/012-ntp-servers @@ -0,0 +1,14 @@ +#!/usr/bin/lua + +local site = require 'gluon.site_config' +local uci = require 'luci.model.uci' + +if not site.ntp_servers or #site.ntp_servers == 0 then + os.exit(0) +end + +local c = uci.cursor() +c:delete('system', 'ntp', 'server') +c:set_list('system', 'ntp', 'server', site.ntp_servers) +c:save('system') +c:commit('system') diff --git a/gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/012-reboot-on-oom b/gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/013-reboot-on-oom similarity index 100% rename from gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/012-reboot-on-oom rename to gluon/gluon-core/files/lib/gluon/upgrade/core/invariant/013-reboot-on-oom diff --git a/gluon/gluon-core/files/usr/lib/lua/gluon/sysconfig.lua b/gluon/gluon-core/files/usr/lib/lua/gluon/sysconfig.lua new file mode 100644 index 0000000..7088249 --- /dev/null +++ b/gluon/gluon-core/files/usr/lib/lua/gluon/sysconfig.lua @@ -0,0 +1,27 @@ +local sysconfigdir = '/lib/gluon/core/sysconfig/' + +local function get(_, name) + local ret = nil + local f = io.open(sysconfigdir .. name) + if f then + ret = f:read('*line') + f:close() + end + return ret +end + +local function set(_, name, val) + local ret = nil + local f = io.open(sysconfigdir .. name, 'w+') + f:write(val) + f:close() +end + +local sysconfig = {} +local mt = { + __index = get, + __newindex = set, +} + +setmetatable(sysconfig, mt) +return sysconfig diff --git a/gluon/gluon-core/generate/lib/gluon/upgrade/core/initial/010-gluon-system b/gluon/gluon-core/generate/lib/gluon/upgrade/core/initial/010-gluon-system deleted file mode 100755 index 96b8bd3..0000000 --- a/gluon/gluon-core/generate/lib/gluon/upgrade/core/initial/010-gluon-system +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -. /lib/functions.sh -. /lib/gluon/functions/sysconfig.sh - -macaddr=$(sysconfig primary_mac) - -uci_set system '@system[0]' hostname "@hostname_prefix@-${macaddr//:/}" -uci_set system '@system[0]' timezone '@timezone@' -uci_commit system diff --git a/gluon/gluon-core/generate/lib/gluon/upgrade/core/invariant/011-ntp-servers b/gluon/gluon-core/generate/lib/gluon/upgrade/core/invariant/011-ntp-servers deleted file mode 100755 index db82e95..0000000 --- a/gluon/gluon-core/generate/lib/gluon/upgrade/core/invariant/011-ntp-servers +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -[ -n "$(echo @ntp_servers@)" ] || exit 0 - - -uci delete system.ntp.server - -for server in @ntp_servers@; do - uci add_list system.ntp.server="$server" -done - -uci commit system