53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/lua
 | |
| 
 | |
| local site = require 'gluon.site_config'
 | |
| local uci = require('simple-uci').cursor()
 | |
| 
 | |
| 
 | |
| for name, config in pairs(site.autoupdater.branches) do
 | |
| 	uci:delete('autoupdater', name)
 | |
| 	uci:section('autoupdater', 'branch', name, {
 | |
| 		name = config.name,
 | |
| 		mirror = config.mirrors,
 | |
| 		good_signatures = config.good_signatures,
 | |
| 		pubkey = config.pubkeys,
 | |
| 	})
 | |
| end
 | |
| 
 | |
| if not uci:get('autoupdater', 'settings') then
 | |
| 	local enabled = false
 | |
| 	local branch = site.autoupdater.branch
 | |
| 
 | |
| 	local f = io.open('/lib/gluon/autoupdater/default_branch')
 | |
| 	if f then
 | |
| 		enabled = true
 | |
| 		branch = f:read('*line')
 | |
| 		f:close()
 | |
| 	end
 | |
| 
 | |
| 	uci:section('autoupdater', 'autoupdater', 'settings', {
 | |
| 		enabled = enabled,
 | |
| 		branch = branch,
 | |
| 	})
 | |
| end
 | |
| 
 | |
| uci:set('autoupdater', 'settings', 'version_file', '/lib/gluon/release')
 | |
| 
 | |
| uci:save('autoupdater')
 | |
| 
 | |
| 
 | |
| local autoupdater_util = require 'autoupdater.util'
 | |
| autoupdater_util.randomseed()
 | |
| 
 | |
| 
 | |
| -- Perform updates at a random time between 04:00 and 05:00, and once an hour
 | |
| -- a fallback update (used after the regular updates haven't worked for
 | |
| -- (priority+1) days after a firmware release, for example because the node
 | |
| -- is always offline at night)
 | |
| local minute = math.random(0, 59)
 | |
| 
 | |
| local f = io.open('/usr/lib/micron.d/autoupdater', 'w')
 | |
| f:write(string.format('%i 4 * * * /usr/sbin/autoupdater\n', minute))
 | |
| f:write(string.format('%i 0-3,5-23 * * * /usr/sbin/autoupdater --fallback\n', minute))
 | |
| f:close()
 |