Pular para o conteúdo principal

[Lua] - Como fazer um parser em Lua

Um parser básico (leitor de arquivo de configuração) em Lua:

file = io.open("file", "r")
all = file:read("*all")
file:close() 
for line in string.gmatch(all, "([^\n]+)") do
        if string.match(line,"^%a") then
                --print(line)
                for key, value in string.gmatch(line,"(%w*)%s*=%s*(.*)") do
                        print ("Parametro: "..key.." valor ".. value)
                end
        end
end 

O arquivo de configuração de exemplo:

#Version specification
version=1
# base directory
dominio="teste.local"


O resultado do parser sendo executado:

alplab:~$ lua lua_read_file
Parametro: version valor 1
Parametro: dominio valor "teste.local"

As linhas de comentário foram ignoradas e os valores dos parâmetros lidos com sucesso. Mas este parse é bem básico. Precisa ainda, por exemplo, verificar se o arquivo existe mesmo e outros ajustes finos.

:wq!

Comentários

Postagens mais visitadas deste blog

[VMWare ESXi 6] - Suporte à placa de rede Realtek 8139

Essa placa não é suportada nativamente pelo ESXi. Para usar uma dessas placas precisei seguir os assoa abaixo:

Envie para o datastore o seguinte arquivo: https://www.dropbox.com/s/840jcwj93yed1wr/rtl8139.vib?dl=0

Execute essa sequência de comandos via SSH:

esxcli software acceptance set --level=CommunitySupported
esxcli software vib install -v /vmfs/volumes/datastore1/isos/rtl8139.vib

Reinicie o sistema e a placa deverá ser reconhecida.

:wq!

CentOS 7 + OMD (Open Monitoring Distribution )

yum install wget -y
wget https://labs.consol.de/repo/stable/rhel7/x86_64/labs-consol-stable-1.3-1.rhel7.noarch.rpm
yum localinstall labs-consol-stable-1.3-1.rhel7.noarch.rpm -y
yum install omd -y
Após a instalação ser concluída, crie e inicie a nova instância do OMD:

omd create nome_do_siteomd start nome_do_site
Para visualizar e alter algumas configurações :

omd config nome_do_site
== OBS
O firewall do CentOS não permite conexões às porta 5000 por padrão (A porta 5000 é a default para o primeiro site OMD). Uma solução rápida (apenas em laboratório):

iptables -F
== Acesse o servidor:
http://ip_do_servidor:5000/nome_do_site
Usuário: omdadmin
Senha: omd

== Main informações
Mais informações em: http://omdistro.org/

OpenVPN no CentOS

Oba oba!!! \0/
Estou de volta para guardar mais uma informação útil! A instalação do OpenVPN no CentOS. Vou mostrar aqui de maneira bem direta a instalação e configuração que já realizei em diversos ambientes.

STARTING...


1. Instale o repositório RPMForge:
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt rpm -K rpmforge-release-0.5.1-1.el5.rf.*.rpm rpm -i rpmforge-release-0.5.1-1.el5.rf.*.rpm

2. Verifique se o RPMForge aparece na lista de repositórios:
yum check-update
3. Instale o OpenVPN yum install openvpn -y
4. Iniciando a configuração: cp -pra /usr/share/openvpn/2.0/easy-rsa /etc/openvpn cd /etc/openvpn/easy-rsa . ./vars ./clean-all ./build-ca

5. Criando a chave para o servidor:
./build-key-server server

6. Criando a chave para o cliente:
./build-key cliente

7. Gerando um Diff Hellman (DH) no servidor:
./build-dh
dentro do diretório /etc/openvpn/ encontra-se um arquivo chamado server.conf (se não exist…