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 https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian12_all.deb")
print( "Instalando repositorio...")
os.system("dpkg -i zabbix-release_latest_7.0+debian12_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")
print( "Pronto!")