005-set-site-config 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. local subst = {}
  17. subst['%%SN'] = site.site_name
  18. subst['%%SC'] = site.site_code
  19. if site.subst then
  20. config = tools.replace_patterns(config, site.subst)
  21. end
  22. if (site.site_select or {}).group and groups and groups[site.site_select.group] then
  23. group = groups[site.site_select.group]
  24. subst['%%GN'] = site.site_select.group
  25. if group.subst then
  26. config = tools.replace_patterns(config, group.subst)
  27. end
  28. end
  29. config = tools.replace_patterns(config, subst)
  30. local file = '/lib/gluon/site.json'
  31. local f = io.open(file, "w")
  32. f:write(config)
  33. f:close()
  34. configured = true
  35. break
  36. end
  37. end
  38. if configured == false then
  39. tools.force_site_code(site_code)
  40. end
  41. end