510-autoupdater-wifi-fallback 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/lua
  2. local uci = require('simple-uci').cursor()
  3. local fs = require 'nixio.fs'
  4. local enabled
  5. if uci:get('autoupdater-wifi-fallback', 'settings') then
  6. enabled = uci:get_bool('autoupdater-wifi-fallback', 'settings', 'enabled')
  7. uci:delete('autoupdater-wifi-fallback', 'settings')
  8. else
  9. enabled = uci:get_bool('autoupdater', 'settings', 'enabled')
  10. end
  11. uci:section('autoupdater-wifi-fallback', 'autoupdater-wifi-fallback', 'settings',{
  12. enabled = enabled,
  13. })
  14. uci:delete('wireless', 'fallback')
  15. uci:delete('network', 'fallback')
  16. uci:delete('network', 'fallback6')
  17. uci:section('network', 'interface', 'fallback',{
  18. proto = 'dhcp',
  19. peerdns = true,
  20. sourcefilter = false,
  21. })
  22. uci:section('network', 'interface', 'fallback6',{
  23. ifname = '@fallback',
  24. proto = 'dhcpv6',
  25. peerdns = true,
  26. sourcefilter = false,
  27. })
  28. uci:save('autoupdater-wifi-fallback')
  29. uci:save('network')
  30. uci:save('wireless')
  31. local minute = tonumber(fs.readfile('/usr/lib/micron.d/autoupdater'):match('^([0-9][0-9]?)%s'))
  32. minute = (minute + 10) % 60
  33. local f = io.open('/usr/lib/micron.d/autoupdater-wifi-fallback', 'w')
  34. f:write(string.format('%i * * * * /usr/sbin/autoupdater-wifi-fallback\n', minute))
  35. f:close()