Skip to content
Snippets Groups Projects
Select Git revision
  • 97efc8abdbd6264a19cbe6c5b95851245f6b798a
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-08-13
  • experimental-2025-08-13-base
  • experimental-2025-08-04
  • experimental-2025-08-04-base
  • experimental-2025-07-31
  • experimental-2025-07-31-base
  • experimental-2025-07-29
  • experimental-2025-07-29-base
  • experimental-2025-07-28
  • experimental-2025-07-28-base
  • experimental-2025-07-26
  • experimental-2025-07-26-base
  • experimental-2025-07-24
  • experimental-2025-07-24-base
  • experimental-2025-07-22
  • experimental-2025-07-22-base
  • experimental-2025-07-21
  • experimental-2025-07-21-base
  • experimental-2025-07-20
  • experimental-2025-07-20-base
41 results

modules

Blame
  • gluon-switch-domain 1.07 KiB
    #!/usr/bin/lua
    
    local unistd = require 'posix.unistd'
    
    
    local function shift()
    	table.remove(arg, 1)
    end
    
    local reboot = true
    if arg[1] == '--no-reboot' then
    	reboot = false
    	shift()
    end
    
    local setup_mode = unistd.access('/var/gluon/setup-mode') == 0
    
    if #arg ~= 1 then
    	io.stderr:write('Usage: gluon-switch-domain [--no-reboot] <domain>\n')
    	os.exit(1)
    end
    local domain = arg[1]
    
    
    if not unistd.access('/lib/gluon/domains/') then
    	io.stderr:write('This Gluon firmware does not support multiple mesh domains.\n')
    	os.exit(1)
    end
    
    
    local function domain_exists(dom)
    	return unistd.access('/lib/gluon/domains/' .. dom .. '.json') == 0
    end
    
    if not domain_exists(domain) then
    	io.stderr:write(string.format("Error: invalid mesh domain '%s'\n", domain))
    	os.exit(1)
    end
    
    
    local uci = require('simple-uci').cursor()
    uci:set('gluon', 'core', 'switch_domain', domain)
    uci:set('gluon', 'core', 'reconfigure', true)
    uci:save('gluon')
    
    local cmd
    if setup_mode then
    	cmd = 'gluon-reconfigure'
    elseif reboot then
    	uci:commit('gluon')
    	cmd = 'reboot'
    else
    	cmd = 'gluon-reload'
    end
    
    unistd.execp(cmd, {[0] = cmd})