import os
def limpeza():
    print("Realizando limpeza")
    fonte = os.path.basename(__file__)
    os.system("rm -f {}/{}".format(local,fonte))
local = os.path.dirname(__file__)
if os.path.isfile("/usr/sbin/zabbix_agent2"):
    print("Zabbix Agent 2 ja instalado! Atualizando os IPs se estiverem desatualizados...")
    os.system("sed -i 's/10.0.6.20;10.0.10.50/zabbix-node01;zabbixserver;johnsplace.ddns.net;johnsplace.ddns.net:10052/g' /etc/zabbix/zabbix_agent2.conf")
    os.system("systemctl enable zabbix-agent2")
    os.system("systemctl restart zabbix-agent2")
    limpeza()
    if os.path.isfile("/etc/init.d/zabbix-agent2"):
        os.system("/etc/init.d/zabbix-agent2 status")
    elif not os.path.isfile("/etc/init.d/zabbix-agent2"):
        os.system("systemctl status zabbix-agent2")
    print("Pronto!")
    exit()
elif os.path.isfile("/etc/zabbix/zabbix_server.conf"):
    print("Zabbix Server encontrado! Finalizando!")
    limpeza()
    exit()
os.system("cd /tmp/")
print( "Baixando repositorio...")
os.system("wget wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian13_all.deb")
print( "Instalando repositorio...")
os.system("dpkg -i zabbix-release_latest_7.0+debian13_all.deb")
print( "Atualizando cache...")
os.system("apt update")
print( "Instalando Zabbix Agent 2")
os.system("apt install zabbix-agent2")
print( "Gerando arquivo de configuracao...")
if os.path.isfile("/etc/zabbix/zabbix_agent2.conf"):
    print("Gzipando /etc/zabbix/zabbix_agent2.conf - TÁ FAZENDO MERDA NEH?")
    os.system("gzip /etc/zabbix/zabbix_agent2.conf")
hostname = input(str("Qual será o nome do host?\n>"))
open("/etc/zabbix/zabbix_agent2.conf", "w").write("""# Zabbix Agente 2 | John's Cloud
ServerActive=zabbix-node01;zabbixserver;johnsplace.ddns.net;johnsplace.ddns.net:10052
Hostname={}
HostMetadata=linux
AllowKey=system.run[*]
LogFileSize=10
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log

# Configuracoes relacionada aos plugins
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf""".format(hostname))
print( "Reiniciando Zabbix Agent 2")
os.system("systemctl enable zabbix-agent2")
os.system("systemctl restart zabbix-agent2")
limpeza()
os.system("/etc/init.d/zabbix-agent2 status")

resposta = 0
resposta_positiva = ["Sim", "S", "s","sim","Y","y","yes"]
resposta_negativa = ["Não","N","n", "Nao","nao","no"]
while resposta not in resposta_positiva and resposta not in resposta_negativa:
    resposta = input(str("Instalar todas as opções abaixo?\n* - Bacula Client\n* - Auto-update packages\n* - Fix no gerenciamento da memória dinamica\nSua resposta:> "))
    print(f"Respondeu: {resposta}")
if resposta in resposta_positiva:
    os.system("wget http://johnsplace.ddns.net:27028/johnsplace/linux/extras.py")
    if not os.path.isfile("extras.py"):
        print("Arquivo de configuração não existe! Finalizando!!!")
        exit()
    from extras import *
    extras()
print( "Pronto!")