005-set-site-config 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/lua
  2. local uci = require('luci.model.uci').cursor()
  3. local json = require 'luci.json'
  4. local site_code = require('gluon.site_config').site_code
  5. local tools = require 'gluon.site_generate'
  6. local template = io.open('/lib/gluon/site-select/template.json', 'r')
  7. local config = template:read("*a")
  8. default:close()
  9. local groups = tools.get_config('/lib/gluon/site-select/groups.json')
  10. local sites = tools.get_config('/lib/gluon/site-select/sites.json')
  11. local currentsite = uci:get("currentsite", "current", "name")
  12. if site_code ~= currentsite then
  13. local configured = false
  14. for _, site in pairs(sites) do
  15. if site.site_code == currentsite then
  16. if site.subst then
  17. config = tools.replace_patterns(config, site.subst)
  18. end
  19. if (site.site_select or {}).group and groups and groups[site.site_select.group] then
  20. group = groups[site.site_select.group]
  21. if group.subst then
  22. config = tools.replace_patterns(config, group.subst)
  23. end
  24. end
  25. local subst = {}
  26. subst['%%SN'] = site.site_name
  27. subst['%%SC'] = site.site_code
  28. config = tools.replace_patterns(config, subst)
  29. local file = '/lib/gluon/site.json'
  30. local f = io.open(file, "w")
  31. f:write(config)
  32. f:close()
  33. configured = true
  34. break
  35. end
  36. end
  37. if configured == false then
  38. tools.force_site_code(site_code)
  39. end
  40. end