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
15 local modpath
= minetest
.get_modpath("gestor")
18 local worldname
= string.split(minetest
.get_worldpath(), "worlds/")
19 worldname
= worldname
[table.maxn(worldname
)]
23 Verificar a existencia de dados e
24 cria-los com valor padrão para que
27 local verificar_dado
= function(dado
, padrao
)
28 if gestor
.bd
:verif("anticrash", dado
) ~= true then
29 gestor
.bd
:salvar("anticrash", dado
, padrao
)
33 -- Tabela de dados (que devem estar no banco de dados)
37 { "bin_args", "./minetest --server --worldname "..worldname
},
41 { "status_email", "false"},
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"},
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])
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
)
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]))
72 if gestor
.bd
:verif("anticrash", "from_senha") then -- separada
73 gestor
.anticrash
.serializar("from_senha", gestor
.bd
:pegar("anticrash", "from_senha"))
77 -- Atualiza os dados salvos por garantia
78 gestor
.anticrash
.salvar_dados()