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
14 -- Caminho da pasta de depurador (depug.txt)
15 local debug_path
= io
.popen
"pwd":read"*all"
16 debug_path
= string.split(debug_path
, "\n")
17 debug_path
= debug_path
[1]
20 local modpath
= minetest
.get_modpath("gestor")
22 -- Caminho da pasta do executavel (minetest) orientado pela pasta do mod
23 local bin_path
= modpath
.."/../../bin"
26 local worldname
= string.split(minetest
.get_worldpath(), "worlds/")
27 worldname
= worldname
[table.maxn(worldname
)]
31 Verificar a existencia de dados e
32 cria-los com valor padrão para que
35 local verificar_dado
= function(dado
, padrao
)
36 if gestor
.bd
:verif("anticrash", dado
) ~= true then
37 gestor
.bd
:salvar("anticrash", dado
, padrao
)
41 -- Tabela de dados (que devem estar no banco de dados)
45 { "bin_path", "./../../bin"},
46 { "bin_args", "./minetest --server --worldname "..worldname
},
50 { "status_email", "false"},
54 { "from_smtp_port", "-"},
55 { "from_subject", "Servidor reiniciado!"},
56 { "from_text", "Texto"},
57 { "from_subject_em", "ALERTA Servidor inoperante"},
58 { "from_text_em", "O servidor cai muito rapidamente. Anticrash foi interrompido para evitar danos"},
61 { "status_backup", "false"},
62 { "debug_path", debug_path
},
63 { "world_path", minetest
.get_worldpath()},
66 -- Verifica todos os dados
67 for _
, v
in ipairs(dados
) do
68 verificar_dado(v
[1], v
[2])
71 -- Salvar um valor para o antcrash
72 gestor
.anticrash
.serializar
= function(dado
, valor
)
73 if not dado
or not valor
then return end
74 os
.execute("echo \""..valor
.."\" > "..string.gsub(modpath
, " ", "\\ ").."/dados/"..dado
)
77 -- Salva todos os dados para o shell
78 gestor
.anticrash
.salvar_dados
= function()
79 for _
, v
in ipairs(dados
) do
80 gestor
.anticrash
.serializar(v
[1], gestor
.bd
:pegar("anticrash", v
[1]))
82 if gestor
.bd
:verif("anticrash", "from_senha") then -- separada
83 gestor
.anticrash
.serializar("from_senha", gestor
.bd
:pegar("anticrash", "from_senha"))
87 -- Atualiza os dados salvos por garantia
88 gestor
.anticrash
.salvar_dados()