site_generate.lua 905 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/lua
  2. local uci = require('simple-uci').cursor()
  3. local json = require 'jsonc'
  4. local sites_json = '/lib/gluon/site-select/sites.json'
  5. module('gluon.site_generate', package.seeall)
  6. function get_config(file)
  7. return assert(json.load(file))
  8. end
  9. function get_list()
  10. local list = {}
  11. local sites = get_config(sites_json)
  12. for index, site in pairs(sites) do
  13. list[site.site_code]=index
  14. end
  15. return list
  16. end
  17. local site_list=get_list()
  18. function validate_site(site_code)
  19. return site_list[site_code]
  20. end
  21. function set_site_code(site_code, force)
  22. if site_code and (force or validate_site(site_code)) then
  23. uci:set('currentsite', 'current', 'name', site_code)
  24. uci:save('currentsite')
  25. uci:commit('currentsite')
  26. return true
  27. end
  28. return false
  29. end
  30. function replace_patterns(value, subst)
  31. for k, v in pairs(subst) do
  32. value = value:gsub(k, v)
  33. end
  34. return value
  35. end