Texto esteticamente mais agradavel
[gestor/gestor2.git] / anticrash.lua
blobd22bfef2b3e63b97aef47d40390128d07b437a7e
1 --[[
2 Mod Gestor para Minetest
3 Gestor v1.0 Copyright (C) 2016 BrunoMine (https://github.com/BrunoMine)
5 Recebeste uma cópia da GNU Lesser General
6 Public License junto com esse software,
7 se não, veja em <http://www.gnu.org/licenses/>.
9 Funcionalidades do anticrash
12 gestor.anticrash = {}
14 -- Caminho do mod
15 local modpath = minetest.get_modpath("gestor")
17 -- Nome do mundo
18 local worldname = string.split(minetest.get_worldpath(), "worlds/")
19 worldname = worldname[table.maxn(worldname)]
21 -- Validar dados
22 --[[
23 Verificar a existencia de dados e
24 cria-los com valor padrão para que
25 estejam disponiveis
27 local verificar_dado = function(dado, padrao)
28 if gestor.bd:verif("anticrash", dado) ~= true then
29 gestor.bd:salvar("anticrash", dado, padrao)
30 end
31 end
33 -- Tabela de dados (que devem estar no banco de dados)
34 local dados = {
35 -- Dados Valor padrao
36 -- Sistema AntCrash
37 { "bin_args", "./minetest --server --worldname "..worldname},
38 { "interval", "300"},
39 { "quedas", "2"},
40 -- Sistema de Email
41 { "status_email", "false"},
42 { "from_email", "-"},
43 { "from_login", "-"},
44 { "from_smtp", "-"},
45 { "from_smtp_port", "-"},
46 { "from_subject", "Servidor reiniciado!"},
47 { "from_text", "Texto"},
48 { "from_subject_em", "ALERTA Servidor inoperante"},
49 { "from_text_em", "O servidor cai muito rapidamente. Anticrash foi interrompido para evitar danos"},
50 { "to_email", "-"},
51 -- Sistema de Backups
52 { "status_backup", "false"},
53 { "world_path", minetest.get_worldpath()},
56 -- Verifica todos os dados
57 for _, v in ipairs(dados) do
58 verificar_dado(v[1], v[2])
59 end
61 -- Salvar um valor para o antcrash
62 gestor.anticrash.serializar = function(dado, valor)
63 if not dado or not valor then return end
64 os.execute("echo \""..valor.."\" > "..string.gsub(modpath, " ", "\\ ").."/dados/"..dado)
65 end
67 -- Salva todos os dados para o shell
68 gestor.anticrash.salvar_dados = function()
69 for _, v in ipairs(dados) do
70 gestor.anticrash.serializar(v[1], gestor.bd:pegar("anticrash", v[1]))
71 end
72 if gestor.bd:verif("anticrash", "from_senha") then -- separada
73 gestor.anticrash.serializar("from_senha", gestor.bd:pegar("anticrash", "from_senha"))
74 end
75 end
77 -- Atualiza os dados salvos por garantia
78 gestor.anticrash.salvar_dados()