Discussion:
[shell-script] Shell Script com CGI [Projeto Cloud]
maik.alberto@hotmail.com [shell-script]
2017-07-11 02:11:18 UTC
Permalink
Boa noite!

Gostaria de compartilhar com o senhores um projeto feito em Shell Script, comecei a escrever para aprimorar alguns conhecimentos, dentre eles Shell Script. O projeto é relacionado com IAAS/CLOUD/DEVOPS, faz gerenciamento de containers LXC via web, "nos moldes" EC2, OpenStack com seus gerenciamento de instâncias.

No projeto utilizo shell script com CGI.

Source
https://github.com/m41k/luw

Projeto em funcionamento:
http://luw.servehttp.com/

Pergunta: Nós dias de hoje, é aceitável a utilização shell com CGI?

Todo e qualquer feedback sobre o código é válido.
Tiago Peczenyj tiago.peczenyj@gmail.com [shell-script]
2017-07-11 18:48:04 UTC
Permalink
Ola

Eu jamais escolheria CGI em 2017, não importa a linguagem. Perl 5 esta
tentando tornar o pacote CGI como "deprecated" pra você ter uma ideia, e a
internet dinâmica praticamente começou com Perl.

O principal problema é ter 1 request HTTP pra 1 processo. Existem
raríssimas situações onde vc precisa disso (em geral lidando com codigo
legado).

Shell script para isso eu tb não indicaria. Programação web com linguagens
apropriadas tem inúmeras vantagens, por exemplo fazer deploy em cloud/Paas.
Fora o custo de desenvolvimento, ferramentas, etc.

Assim eu fiquei um tempo pensando em uma situação que justifique e não
encontrei. Vejamos se alguém consegue dar um contra exemplo.
Post by ***@hotmail.com [shell-script]
Boa noite!
Gostaria de compartilhar com o senhores um projeto feito em Shell Script,
comecei a escrever para aprimorar alguns conhecimentos, dentre eles Shell
Script. O projeto é relacionado com IAAS/CLOUD/DEVOPS, faz gerenciamento de
containers LXC via web, "nos moldes" EC2, OpenStack com seus gerenciamento
de instâncias.
No projeto utilizo shell script com CGI.
Source
https://github.com/m41k/luw
http://luw.servehttp.com/
Pergunta: Nós dias de hoje, é aceitável a utilização shell com CGI?
Todo e qualquer feedback sobre o código é válido.
--
Tiago B. Peczenyj

http://about.me/peczenyj
maik.alberto@hotmail.com [shell-script]
2017-07-12 21:27:55 UTC
Permalink
Pois é, li algumas coisas quanto a utilização de CGI, mas continuei escrevendo e começou a ganhar tamanho.

Mas vendo alguns vídeos do Júlio Neves, me apeguei no "Dá pra fazer tudo com Shell, o negócio é achar a melhor forma"

Qual será essa forma nesse caso...
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2017-07-13 00:23:15 UTC
Permalink
Fala Maik,
O que sempre digo é: "Não pergunte se dá para fazer em Shell, *dá*.
Pergunte qual é a melhor maneira de fazer, já que o Shell sempre te
propicia dezenas de formas diferentes para resolver qq problema". E essa
lista é a maior testemunha que isso é verdade.

Mas pelo que entendi, a discussão não é sobre se dá ou não dá para fazer em
Shell, *claro que dá!* E vc pode ver inclusive um tutorial sobre o tema
<http://thobias.org/doc/cgi_shell.html> na página de um gaúcho, colega
nosso de lista que está sumido há muito tempo.

Acho que o Thiago, outro sumido, ressuscitou na lista só para te dizer que,
atualmente, CGI não é mais a ferramenta adequada. Não foi isso Thiago?

Abcs,
Julio

Em Agosto darei um treinamento de 40 horas no RJ e em BSB sobre
Programação em Shell, com imersão em Expressões Regulares e dicas
de YAD. Para mais detalhes acesse goo.gl/JkWmBx

*​*[image: Exibindo julionevescurso.png]

*Damos treinamento em sua empresa por *
*um preço, no mínimo, 50% mais barato que qualquer curso,*
*com certificado e nota fiscal.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by ***@hotmail.com [shell-script]
Pois é, li algumas coisas quanto a utilização de CGI, mas continuei
escrevendo e começou a ganhar tamanho.
Mas vendo alguns vídeos do Júlio Neves, me apeguei no "Dá pra fazer tudo
com Shell, o negócio é achar a melhor forma"
Qual será essa forma nesse caso...
maik.alberto@hotmail.com [shell-script]
2017-07-13 02:36:05 UTC
Permalink
Bença Julio!

Rapaz, frequentei muita a página do Thobias, e o google ainda me redireciona as vezes pra lá... Só tem lenda viva aqui...

Reformulando:

Dá pra utilizar o shell script como funcionalidade extra de uma página?
Não pergunte se dá para fazer em Shell, *dá*.

Thobias mostra como fazer, com CGI... Thiago diz que dessa forma não é viável atualmente...

Então...

Qual a melhor maneira de fazer isso hoje em dia?(shell+web)
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2017-07-13 11:19:29 UTC
Permalink
Realmente essa não é a minha praia, detesto html e sou uma toupeira em
assuntos de internet. Mas pelo visto, o Tiago Peczenyj (ou outra combinação
de consoantes ;), tb frequentador antigo da lista e amigo pessoal, pode te
dar uma dica sobre o tema.

No dia 19/07 farei um hangout somente sobre Shell que começará as
20:00h até mais ou menos as 21:00h ou até acabarem as perguntas.
Isto é, só acabará quando se encerrarem as dúvidas.

Inscreva-se em: https://app.webinarjam.net/register/37942/66d16b7d7c

*​*

Abcs,
Julio
*Damos treinamento em sua empresa por **um preço, *
*no mínimo, 50% mais barato que qualquer curso,*
*com certificado e nota fiscal.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by ***@hotmail.com [shell-script]
Bença Julio!
Rapaz, frequentei muita a página do Thobias, e o google ainda me
redireciona as vezes pra lá... Só tem lenda viva aqui...
Dá pra utilizar o shell script como funcionalidade extra de uma página?
Não pergunte se dá para fazer em Shell, *dá*.
Thobias mostra como fazer, com CGI... Thiago diz que dessa forma não é
viável atualmente...
Então...
Qual a melhor maneira de fazer isso hoje em dia?(shell+web)
luzemario@gmail.com [shell-script]
2017-07-13 13:44:14 UTC
Permalink
Júlio,

Sempre acreditei que seria possível fazer um site completo em shell, inclusive vi os exemplos na 9ª edição (que emprestei não sei para quem e sumiram com ela... kkk), mas esse exemplo do Maik me deixou empolgado. Não só ele fez tudo em shell, mas também fez um site extremamente simples e funcional, mesmo para o fim a que se destina. Gostei tanto da apresentação do site quanto do código.

É claro que se o mestre Júlio revisar o código com calma vai aparecer um one-liner aqui e ali, mas o código está extremamente inteligível. Só não dá para dizer se pode ou não ficar mais rápido, mas considerndo que é uma aplicação web, a gente nem percebe em nossas maravilhosas conexões.

Parabéns, Maik. Você mostrou que um script não precisa exibir um resultado "feio", com "cara de MSDOS", para executar uma tarefa.

Me fala quanto tempo você demorou para terminar.

Luzemário
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2017-07-13 13:47:41 UTC
Permalink
Engoli mosca e não vi o site. Devo ter passado po cima do e-mail sem
reperá-lo. P. favor me mandem o link que tb quero dar uma curtida.

No dia 19/07 farei um hangout somente sobre Shell que começará as
20:00h até mais ou menos as 21:00h ou até acabarem as perguntas.
Isto é, só acabará quando se encerrarem as dúvidas.

Inscreva-se em: https://app.webinarjam.net/register/37942/66d16b7d7c

*​*

Abcs,
Julio
*Damos treinamento em sua empresa por **um preço, *
*no mínimo, 50% mais barato que qualquer curso,*
*com certificado e nota fiscal.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by ***@gmail.com [shell-script]
Júlio,
Sempre acreditei que seria possível fazer um site completo em shell,
inclusive vi os exemplos na 9ª edição (que emprestei não sei para quem e
sumiram com ela... kkk), mas esse exemplo do Maik me deixou empolgado. Não
só ele fez tudo em shell, mas também fez um site extremamente simples e
funcional, mesmo para o fim a que se destina. Gostei tanto da apresentação
do site quanto do código.
É claro que se o mestre Júlio revisar o código com calma vai aparecer um
one-liner aqui e ali, mas o código está extremamente inteligível. Só não dá
para dizer se pode ou não ficar mais rápido, mas considerndo que é uma
aplicação web, a gente nem percebe em nossas maravilhosas conexões.
Parabéns, Maik. Você mostrou que um script não precisa exibir um resultado
"feio", com "cara de MSDOS", para executar uma tarefa.
Me fala quanto tempo você demorou para terminar.
Luzemário
maik.alberto@hotmail.com [shell-script]
2017-07-13 15:03:44 UTC
Permalink
Source
https://github.com/m41k/luw

Projeto em funcionamento:
http://luw.servehttp.com/ http://luw.servehttp.com/
maik.alberto@hotmail.com [shell-script]
2017-07-13 15:07:15 UTC
Permalink
Então, tem mais de um ano, colocando uma funcionalidade aqui, outra ali, então foi ganhando forma, tem muita coisa que pode ser acrescentada, muita mesmo, a última foi redirecionamento de portas, tem uma parte de administração que foi aprimorada, mas como é feito apenas por "hobby", por isso a falta de pressa. A questão do CGI tb tá freando um pouco. Ano passado tava rodando em uma instância EC2 mínima na AMAZON, mas conexão boa, os downloads dos containers eram feito rapidamente, mas acabou o ano grátis de teste, agora o http://luw.servehttp.com/ http://luw.servehttp.com/ tá rodando em um servidor "caseiro" com uma conexão ADSL, o que compromete um pouco, até indico testar com container do ALPINE, para agilizar os testes, tava pensando em trabalhar com cache para melhorar a performance. Do mais é isso aí, "vamo que vamo".
luzemario@gmail.com [shell-script]
2017-07-12 17:58:44 UTC
Permalink
Prezado,

Estou impressionado com esse projeto. Alguma documentação de implementação? tenho um servidor sobrando em casa e gostaria de testar isso lá.

Luzemário
maik.alberto@hotmail.com [shell-script]
2017-07-12 21:29:02 UTC
Permalink
Luzemário,

obrigado por olhar o projeto, obrigado mesmo. Documentei pouca coisa, até porque como disse, fui fazendo para aprimorar alguns conhecimentos.

Instalação é bem simples no Ubuntu 16.04 [escrito nesta distro], não cheguei a testar em outras. Escrevi um instalador que automatiza tudo.

curl https://raw.githubusercontent.com/m41k/luw/master/install.sh | sh

ou

wget https://raw.githubusercontent.com/m41k/luw/master/install.sh
chmod +x install.sh
./install.sh

E qualquer dúvida pode mandar, estou a disposição.
Tiago Tarifa Munhoz tiagotarifa@gmail.com [shell-script]
2017-07-14 20:47:38 UTC
Permalink
Eae Maik, tudo certo?

Parabéns pelo projeto, também achei que ficou muito legal.
O seu projeto já me deu algumas ideias.
Eu queria fazer um servidorzinho web em casa só para visualizar fotografias da
familia. Pensei gerar em CGI, com miniaturas e tudo mais.
Sei que é arcaico, mas acho mais simples do que tentar implementar isso
no Java + tomcat e todas as "voltas" da orientação a objeto. Ainda mais
se o "servidor" for a manivela.
Eu tenho a mesma dúvida que você, CGI é ultrapassado! Não sei se tem
algo que seja simples igual, em shell, que o substitua. E também não acho que
vale a pena aprender uma nova linguagem só para fazer algo simples.
Abs
--
Tiago Tarifa Munhoz
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2017-07-15 11:19:58 UTC
Permalink
Tiago, em cima da tua ideia,
vai aí um desafio à lista: pq não abrir uma outra lista, filha desta, para
desenvolver um gerenciador de mídia, ou seja, de qq mídia, que vc possa
recuperar por quaisquer palavras chave (ex: +foto +eu oferece as fotos
(obrigatorio por causa do +) que eu (obrigatório por causa do +) apareço e
indica em quais pendrive tem mais material que case com a pesquisa e seus
nomes) em qq tipo de midia, foto, música, filme, ...

As interfaces de entrada e saída de dados seriam feitas no yad (se o grupo
precisar, faço e explico cada interface).

No dia 19/07 farei um hangout somente sobre Shell que começará as
20:00h até mais ou menos as 21:00h ou até acabarem as perguntas.
Isto é, só acabará quando se encerrarem as dúvidas.

Inscreva-se em: https://app.webinarjam.net/register/37942/66d16b7d7c

*​*

Abcs,
Julio
*Damos treinamento em sua empresa por **um preço, *
*no mínimo, 50% mais barato que qualquer curso,*
*com certificado e nota fiscal.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Tiago Tarifa Munhoz ***@gmail.com [shell-script]
Eae Maik, tudo certo?
Parabéns pelo projeto, também achei que ficou muito legal.
O seu projeto já me deu algumas ideias.
Eu queria fazer um servidorzinho web em casa só para visualizar
fotografias da
familia. Pensei gerar em CGI, com miniaturas e tudo mais.
Sei que é arcaico, mas acho mais simples do que tentar implementar isso
no Java + tomcat e todas as "voltas" da orientação a objeto. Ainda mais
se o "servidor" for a manivela.
Eu tenho a mesma dúvida que você, CGI é ultrapassado! Não sei se tem
algo que seja simples igual, em shell, que o substitua. E também não acho
que
vale a pena aprender uma nova linguagem só para fazer algo simples.
Abs
--
Tiago Tarifa Munhoz
Gilberto Nunes gilberto.nunes32@gmail.com [shell-script]
2017-07-15 13:28:39 UTC
Permalink
Parabéns pelo projeto....
Mais uma vez mostrando o poder do shell!


Obrigado

Cordialmente


Gilberto Ferreira

Consultor TI Linux | IaaS Proxmox, CloudStack, KVM | Zentyal Server |
Zimbra Mail Server

(47) 3025-5907
(47) 99676-7530

Skype: gilberto.nunes36


konnectati.com.br <http://www.konnectati.com.br/>



Post by 'Julio C. Neves' ***@gmail.com [shell-script]
Tiago, em cima da tua ideia,
vai aí um desafio à lista: pq não abrir uma outra lista, filha desta, para
desenvolver um gerenciador de mídia, ou seja, de qq mídia, que vc possa
recuperar por quaisquer palavras chave (ex: +foto +eu oferece as fotos
(obrigatorio por causa do +) que eu (obrigatório por causa do +) apareço e
indica em quais pendrive tem mais material que case com a pesquisa e seus
nomes) em qq tipo de midia, foto, música, filme, ...
As interfaces de entrada e saída de dados seriam feitas no yad (se o grupo
precisar, faço e explico cada interface).
No dia 19/07 farei um hangout somente sobre Shell que começará as
20:00h até mais ou menos as 21:00h ou até acabarem as perguntas.
Isto é, só acabará quando se encerrarem as dúvidas.
Inscreva-se em: https://app.webinarjam.net/register/37942/66d16b7d7c
*​*
Abcs,
Julio
*Damos treinamento em sua empresa por **um preço, *
*no mínimo, 50% mais barato que qualquer curso,*
*com certificado e nota fiscal.*
​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Post by Tiago Tarifa Munhoz ***@gmail.com [shell-script]
Eae Maik, tudo certo?
Parabéns pelo projeto, também achei que ficou muito legal.
O seu projeto já me deu algumas ideias.
Eu queria fazer um servidorzinho web em casa só para visualizar
fotografias da
familia. Pensei gerar em CGI, com miniaturas e tudo mais.
Sei que é arcaico, mas acho mais simples do que tentar implementar isso
no Java + tomcat e todas as "voltas" da orientação a objeto. Ainda mais
se o "servidor" for a manivela.
Eu tenho a mesma dúvida que você, CGI é ultrapassado! Não sei se tem
algo que seja simples igual, em shell, que o substitua. E também não acho
que
vale a pena aprender uma nova linguagem só para fazer algo simples.
Abs
--
Tiago Tarifa Munhoz
maik.alberto@hotmail.com [shell-script]
2017-07-15 14:37:52 UTC
Permalink
Obrigado Gilberto!

Observei em sua assinatura o Proxmox, só para conhecimento o projetohttp://luw.servehttp.com/ está numa VM dele, e como a lista é de shell, recentemente escrevi um script para administrar remotamente o proxmox através de linha de comando, de inicio o foco foi o gerenciamento de containers(LXC).

Segue para conhecimento: https://github.com/m41k/shellmox https://github.com/m41k/shellmox
Gilberto Nunes gilberto.nunes32@gmail.com [shell-script]
2017-07-15 15:03:37 UTC
Permalink
Olà Maik....

Muito interessante...
O que acho que falta ao Proxmox é algo no estilo que vc criou, algo mais
simples e direto!
Pra quem é técnico como nós, quanto mais detalhes melhor... rs....
Mas a tua interface shell é mais direta ao ponto...
O backend também é em Proxmox???
Digo, seu shell é capaz de "interfacear" ( perdoem-me pela infâmia do
termo... ) com a API do Proxmox
( https://pve.proxmox.com/wiki/Proxmox_VE_API ).

Tipo poderia criar as VM's no Proxmox mas gerenciá-las pelo sua interface
web-shell ???




Obrigado

Cordialmente


Gilberto Ferreira

Consultor TI Linux | IaaS Proxmox, CloudStack, KVM | Zentyal Server |
Zimbra Mail Server

(47) 3025-5907
(47) 99676-7530

Skype: gilberto.nunes36


konnectati.com.br <http://www.konnectati.com.br/>


http://youtu.be/dsiTPeNWcSE
Post by ***@hotmail.com [shell-script]
Obrigado Gilberto!
Observei em sua assinatura o Proxmox, só para conhecimento o projetohttp://
luw.servehttp.com/ está numa VM dele, e como a lista é de shell,
recentemente escrevi um script para administrar remotamente o proxmox
através de linha de comando, de inicio o foco foi o gerenciamento de
containers(LXC).
Segue para conhecimento: https://github.com/m41k/shellmox
maik alberto maik.alberto@hotmail.com [shell-script]
2017-07-15 15:54:20 UTC
Permalink
Então,


tava apreendo um pouco sobre Ansible, vi que nele tinha um módulo para LXC(tem tb pra kvm, naum mexi ainda), resolvi então juntar o que estava aprendendo(Ansible), com um pouco que sei(LXC) e com o que gosto(SHELL), então coloquei isso no script. O gerenciamento dos containers tá baseado nesse pilares. Quando você faz a criação de container através do script, ele sobe uma máquina como estivesse fazendo através do proxmox na web. Se fizer a criação através do terminal e estiver com o browser aberto em paralelo, vai ver a máquina sendo criada, parada ou excluída em tempo real, e poderá administra por lá sem problema, "o script agiliza o processo de cliques".


No meio do caminho me deparei com a API do proxmox, pouco conhecimento sobre, mas peguei o proxmoxer - Python Wrapper for the Proxmox 2.x API - (Vale compartilhar com os demais, dentro do shell tá rodando algo em python, a forma que achei, talvez seja útil para alguém) que faz a interação com a API, joguei dentro de uma função no shell script, no momento ele apenas faz a listagem das VMs e Containers para consulta no terminal.


Dá pra fazer muita coisa ainda. Espero ter esclarecido algumas dúvidas. Disponha.


PS: Só pra manter o foco, o projeto do tópico tem algumas características parecidas do proxmox. (em relação ao gerenciamento de containers LXC).


________________________________
De: shell-***@yahoogrupos.com.br <shell-***@yahoogrupos.com.br> em nome de Gilberto Nunes ***@gmail.com [shell-script] <shell-***@yahoogrupos.com.br>
Enviado: sábado, 15 de julho de 2017 12:03
Para: shell-***@yahoogrupos.com.br
Assunto: Re: [shell-script] Shell Script com CGI [Projeto Cloud]



Olà Maik....

Muito interessante...
O que acho que falta ao Proxmox é algo no estilo que vc criou, algo mais simples e direto!
Pra quem é técnico como nós, quanto mais detalhes melhor... rs....
Mas a tua interface shell é mais direta ao ponto...
O backend também é em Proxmox???
Digo, seu shell é capaz de "interfacear" ( perdoem-me pela infâmia do termo... ) com a API do Proxmox
( https://pve.proxmox.com/wiki/Proxmox_VE_API ).
Proxmox VE API - Proxmox VE<https://pve.proxmox.com/wiki/Proxmox_VE_API>
pve.proxmox.com
Introduction. Proxmox VE uses a REST like API. The concept is described in [1] (Resource Oriented Architectur - ROA). We choose JSON as primary data format, and the ...


Tipo poderia criar as VM's no Proxmox mas gerenciá-las pelo sua interface web-shell ???




Obrigado

Cordialmente


Gilberto Ferreira

Consultor TI Linux | IaaS Proxmox, CloudStack, KVM | Zentyal Server | Zimbra Mail Server

(47) 3025-5907
(47) 99676-7530

Skype: gilberto.nunes36


konnectati.com.br<http://www.konnectati.com.br/>


http://youtu.be/dsiTPeNWcSE


Em 15 de julho de 2017 11:37, ***@hotmail.com<mailto:***@hotmail.com> [shell-script] <shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br>> escreveu:


Obrigado Gilberto!

Observei em sua assinatura o Proxmox, só para conhecimento o projetohttp://luw.servehttp.com/<http://luw.servehttp.com/> está numa VM dele, e como a lista é de shell, recentemente escrevi um script para administrar remotamente o proxmox através de linha de comando, de inicio o foco foi o gerenciamento de containers(LXC).

Segue para conhecimento: https://github.com/m41k/shellmox
'Julio C. Neves' julio.neves@gmail.com [shell-script]
2017-07-15 21:06:15 UTC
Permalink
Maik, suponha que eu esteja dentro de um script shell e não conheça nem o
cmd echo, nem o printf, mas sei que em python o cmd print manda o dado para
a tela, então veja essa facilidade do Shell, que vc já deve conhecer, mas
nem sempre é empregada na sua potencialidade máxima:

$ Num=5
$ Nome=Maik
$ /usr/bin/python << fim
print $Num
print $Nome
fim
5
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'Maik' is not defined

Ele imprimiu $Num, mas deu erro em $Nome, isso pq vc está chamando o
interpretador python porém está em um ambiente Shell, ou seja a variável
que interpreta é o Shell, que passa o literal Maik para o print do Python,
mas o Python só entende literais que estào dentro de aspas (sem aspas ele
imagina que seja um número ou uma variável) vamos então listar esta
variável entre aspas:

$ /usr/bin/python << fim
print $Num
print "$Nome"
fim

5
Maik

Agora funcionou. Dei essa volta toda, só para mostrar para a nossa lista
que qq interpretador (inclusive os *SQL* da vida) pode ser usado
nativamente dentro de um script, inclusive partilhando seus dados.

Volto a dizer: nunca pergunte se dá para fazer em Shell. A pergunta correta
é: qual é a melhor maneira de se fazer em Shell. ;)

No dia 19/07 farei um hangout somente sobre Shell que começará as
20:00h até mais ou menos as 21:00h ou até acabarem as perguntas.
Isto é, só acabará quando se encerrarem as dúvidas.

Inscreva-se em: https://app.webinarjam.net/register/37942/66d16b7d7c

*​*

Abcs,
Julio
*Damos treinamento em sua empresa por **um preço, *
*no mínimo, 50% mais barato que qualquer curso,*
*com certificado e nota fiscal.*

​​
Nosso time de instrutores *in company* é formado somente por
​
​
autores
​ ​
​
de
*Best Sellers​ ​*​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Então,
tava apreendo um pouco sobre Ansible, vi que nele tinha um módulo para
LXC(tem tb pra kvm, naum mexi ainda), resolvi então juntar o que estava
aprendendo(Ansible), com um pouco que sei(LXC) e com o que gosto(SHELL),
então coloquei isso no script. O gerenciamento dos containers tá baseado
nesse pilares. Quando você faz a criação de container através do script,
ele sobe uma máquina como estivesse fazendo através do proxmox na web. Se
fizer a criação através do terminal e estiver com o browser aberto em
paralelo, vai ver a máquina sendo criada, parada ou excluída em tempo real,
e poderá administra por lá sem problema, "o script agiliza o processo de
cliques".
No meio do caminho me deparei com a API do proxmox, pouco conhecimento
sobre, mas peguei o proxmoxer - Python Wrapper for the Proxmox 2.x API -
(Vale compartilhar com os demais, dentro do shell tá rodando algo em
python, a forma que achei, talvez seja útil para alguém) que faz a
interação com a API, joguei dentro de uma função no shell script, no
momento ele apenas faz a listagem das VMs e Containers para consulta no
terminal.
Dá pra fazer muita coisa ainda. Espero ter esclarecido algumas dúvidas.
Disponha.
PS: Só pra manter o foco, o projeto do tópico tem algumas características
parecidas do proxmox. (em relação ao gerenciamento de containers LXC).
------------------------------
*Enviado:* sábado, 15 de julho de 2017 12:03
*Assunto:* Re: [shell-script] Shell Script com CGI [Projeto Cloud]
Olà Maik....
Muito interessante...
O que acho que falta ao Proxmox é algo no estilo que vc criou, algo mais
simples e direto!
Pra quem é técnico como nós, quanto mais detalhes melhor... rs....
Mas a tua interface shell é mais direta ao ponto...
O backend também é em Proxmox???
Digo, seu shell é capaz de "interfacear" ( perdoem-me pela infâmia do
termo... ) com a API do Proxmox
( https://pve.proxmox.com/wiki/Proxmox_VE_API ).
Proxmox VE API - Proxmox VE <https://pve.proxmox.com/wiki/Proxmox_VE_API>
pve.proxmox.com
Introduction. Proxmox VE uses a REST like API. The concept is described in
[1] (Resource Oriented Architectur - ROA). We choose JSON as primary data
format, and the ...
Tipo poderia criar as VM's no Proxmox mas gerenciá-las pelo sua interface
web-shell ???
Obrigado
Cordialmente
Gilberto Ferreira
Consultor TI Linux | IaaS Proxmox, CloudStack, KVM | Zentyal Server | Zimbra Mail Server
(47) 3025-5907
(47) 99676-7530
Skype: gilberto.nunes36
konnectati.com.br <http://www.konnectati.com.br/>
http://youtu.be/dsiTPeNWcSE
Post by ***@hotmail.com [shell-script]
Obrigado Gilberto!
Observei em sua assinatura o Proxmox, só para conhecimento o
projetohttp://luw.servehttp.com/ está numa VM dele, e como a lista é de
shell, recentemente escrevi um script para administrar remotamente o
proxmox através de linha de comando, de inicio o foco foi o gerenciamento
de containers(LXC).
Segue para conhecimento: https://github.com/m41k/shellmox
maik alberto maik.alberto@hotmail.com [shell-script]
2017-07-16 03:24:43 UTC
Permalink
Excelente explicação,


só pra constar como ficou a parte mencionada no script


list(){
python -c '
import base64
import commands
path = commands.getoutput("echo $HOME")
f = open(path+"/.shellmox/.moxcfg", "r")
name = f.readline().replace("\n", "")
host = f.readline().replace("\n", "")
user = f.readline().replace("\n", "")+"@pam"
pas1 = f.readline().replace("\n", "")
pas2 = base64.b64decode(pas1).replace("\n", "")

from proxmoxer import ProxmoxAPI; proxmox = ProxmoxAPI(host, user=user, password=pas2, verify_ssl=False)
for vm in proxmox.cluster.resources.get(type="vm"): print("{0}. {1} => {2}" .format(vm["vmid"], vm["name"], vm["status"]))

f.close()
'
}

source:
https://raw.githubusercontent.com/m41k/shellmox/master/shellmox

Curiosidade: Nesse script de inicio escrevi para ser interpretado pelo /bin/bash, resolvi alterar para ser interpretado para /bin/sh, quando resolvi gerar uma imagem o mais compacta possível para o Docker, tive que fazer algumas alterações.


Comentadas no script(#RMsh):

"read -sp" não funcionou

array abaixo substituí, não rolou
OP=('list' 'lxc-ls' 'templates' 'id' 'create' 'config')

function list() substiuído por list()

Nota:
Júlio quando diz do tal open em outras linguagens de programação para pegar conteúdo
de arquivo pode ser notado no script, isso realmente faz eu admirar mais o shell.


________________________________
De: shell-***@yahoogrupos.com.br <shell-***@yahoogrupos.com.br> em nome de 'Julio C. Neves' ***@gmail.com [shell-script] <shell-***@yahoogrupos.com.br>
Enviado: sábado, 15 de julho de 2017 18:06
Para: shell-***@yahoogrupos.com.br
Assunto: Re: [shell-script] Shell Script com CGI [Projeto Cloud]



Maik, suponha que eu esteja dentro de um script shell e não conheça nem o cmd echo, nem o printf, mas sei que em python o cmd print manda o dado para a tela, então veja essa facilidade do Shell, que vc já deve conhecer, mas nem sempre é empregada na sua potencialidade máxima:

$ Num=5
$ Nome=Maik
$ /usr/bin/python << fim
print $Num
print $Nome
fim
5
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'Maik' is not defined

Ele imprimiu $Num, mas deu erro em $Nome, isso pq vc está chamando o interpretador python porém está em um ambiente Shell, ou seja a variável que interpreta é o Shell, que passa o literal Maik para o print do Python, mas o Python só entende literais que estào dentro de aspas (sem aspas ele imagina que seja um número ou uma variável) vamos então listar esta variável entre aspas:

$ /usr/bin/python << fim
print $Num
print "$Nome"
fim

5
Maik

Agora funcionou. Dei essa volta toda, só para mostrar para a nossa lista que qq interpretador (inclusive os *SQL* da vida) pode ser usado nativamente dentro de um script, inclusive partilhando seus dados.

Volto a dizer: nunca pergunte se dá para fazer em Shell. A pergunta correta é: qual é a melhor maneira de se fazer em Shell. ;)

No dia 19/07 farei um hangout somente sobre Shell que começará as
20:00h até mais ou menos as 21:00h ou até acabarem as perguntas.
Isto é, só acabará quando se encerrarem as dúvidas.

Inscreva-se em: https://app.webinarjam.net/register/37942/66d16b7d7c
[Loading Image...]<https://app.webinarjam.net/register/37942/66d16b7d7c>

WEBINARJAM | Desvendando o Shell Script<https://app.webinarjam.net/register/37942/66d16b7d7c>
app.webinarjam.net
Hangout Online e Gratuito Escola Linux - Desvendando o Shell Script


[https://docs.google.com/uc?export=download&id=0B6Rg1uyhMVcbSlVpcWVlY0VpMmc&revid=0B6Rg1uyhMVcbVWZQemlSSzZDT1QySjZDbmdvTWQraUNZUVFjPQ]

Abcs,
Julio
Damos treinamento em sua empresa por um preço,
no mínimo, 50% mais barato que qualquer curso,
com certificado e nota fiscal.

Nosso time de instrutores in company é formado somente por
autores
de Best Sellers
laureados sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico

Em 15 de julho de 2017 12:54, maik alberto ***@hotmail.com<mailto:***@hotmail.com> [shell-script] <shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br>> escreveu:


Então,


tava apreendo um pouco sobre Ansible, vi que nele tinha um módulo para LXC(tem tb pra kvm, naum mexi ainda), resolvi então juntar o que estava aprendendo(Ansible), com um pouco que sei(LXC) e com o que gosto(SHELL), então coloquei isso no script. O gerenciamento dos containers tá baseado nesse pilares. Quando você faz a criação de container através do script, ele sobe uma máquina como estivesse fazendo através do proxmox na web. Se fizer a criação através do terminal e estiver com o browser aberto em paralelo, vai ver a máquina sendo criada, parada ou excluída em tempo real, e poderá administra por lá sem problema, "o script agiliza o processo de cliques".


No meio do caminho me deparei com a API do proxmox, pouco conhecimento sobre, mas peguei o proxmoxer - Python Wrapper for the Proxmox 2.x API - (Vale compartilhar com os demais, dentro do shell tá rodando algo em python, a forma que achei, talvez seja útil para alguém) que faz a interação com a API, joguei dentro de uma função no shell script, no momento ele apenas faz a listagem das VMs e Containers para consulta no terminal.


Dá pra fazer muita coisa ainda. Espero ter esclarecido algumas dúvidas. Disponha.


PS: Só pra manter o foco, o projeto do tópico tem algumas características parecidas do proxmox. (em relação ao gerenciamento de containers LXC).


________________________________
De: shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br> <shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br>> em nome de Gilberto Nunes ***@gmail.com<mailto:***@gmail.com> [shell-script] <shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br>>
Enviado: sábado, 15 de julho de 2017 12:03
Para: shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br>
Assunto: Re: [shell-script] Shell Script com CGI [Projeto Cloud]



Olà Maik....

Muito interessante...
O que acho que falta ao Proxmox é algo no estilo que vc criou, algo mais simples e direto!
Pra quem é técnico como nós, quanto mais detalhes melhor... rs....
Mas a tua interface shell é mais direta ao ponto...
O backend também é em Proxmox???
Digo, seu shell é capaz de "interfacear" ( perdoem-me pela infâmia do termo... ) com a API do Proxmox
( https://pve.proxmox.com/wiki/Proxmox_VE_API ).
Proxmox VE API - Proxmox VE<https://pve.proxmox.com/wiki/Proxmox_VE_API>
pve.proxmox.com<http://pve.proxmox.com>
Introduction. Proxmox VE uses a REST like API. The concept is described in [1] (Resource Oriented Architectur - ROA). We choose JSON as primary data format, and the ...


Tipo poderia criar as VM's no Proxmox mas gerenciá-las pelo sua interface web-shell ???




Obrigado

Cordialmente


Gilberto Ferreira

Consultor TI Linux | IaaS Proxmox, CloudStack, KVM | Zentyal Server | Zimbra Mail Server

(47) 3025-5907<tel:(47)%203025-5907>
(47) 99676-7530<tel:(47)%2099676-7530>

Skype: gilberto.nunes36


konnectati.com.br<http://www.konnectati.com.br/>


http://youtu.be/dsiTPeNWcSE


Em 15 de julho de 2017 11:37, ***@hotmail.com<mailto:***@hotmail.com> [shell-script] <shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br>> escreveu:


Obrigado Gilberto!

Observei em sua assinatura o Proxmox, só para conhecimento o projetohttp://luw.servehttp.com/<http://luw.servehttp.com/> está numa VM dele, e como a lista é de shell, recentemente escrevi um script para administrar remotamente o proxmox através de linha de comando, de inicio o foco foi o gerenciamento de containers(LXC).

Segue para conhecimento: https://github.com/m41k/shellmox
Tiago Tarifa Munhoz tiagotarifa@gmail.com [shell-script]
2017-07-16 14:29:30 UTC
Permalink
Grande meste Julio!

Eu viajei na sua ídeia. Pensei até em uma interação do shell com algum
SQL, tipo sqlite. Ai o usuário escolhe na hora de instalar se quer usar
texto ou o sqlite para armazenar essas informações.
Apenas viajando na maionese aqui...

No meu caso estou envolvido em outro projeto pessoal, também em shell,
para ser o "portifólio" do meu conhecimento e agregar no meu currículo.
Ele ainda não está finalizado, mas para os curiosos o projeto é este:
https://github.com/tiagotarifa/pocinstaller
Aviso de antemão que o projeto está em um inglês que precisa melhorar
muito para ficar ruim.
Post by 'Julio C. Neves' ***@gmail.com [shell-script]
Tiago, em cima da tua ideia,
vai aí um desafio à lista: pq não abrir uma outra lista, filha desta, para desenvolver um gerenciador de mídia, ou seja, de qq mídia, que vc possa recuperar por quaisquer palavras chave (ex: +foto
+eu oferece as fotos (obrigatorio por causa do +) que eu (obrigatório por causa do +) apareço e indica em quais pendrive tem mais material que case com a pesquisa e seus nomes) em qq tipo de midia,
foto, música, filme, ...
As interfaces de entrada e saída de dados seriam feitas no yad (se o grupo precisar, faço e explico cada interface).
No dia 19/07 farei um hangout somente sobre Shell que começará as
20:00h até mais ou  menos as 21:00h ou até acabarem as perguntas.
Isto é, só acabará quando se encerrarem as dúvidas.
Inscreva-se em: https://app.webinarjam.net/register/37942/66d16b7d7c
​[uc]
Abcs,
Julio
Damos treinamento em sua empresa por um preço, 
no mínimo, 50% mais barato que qualquer curso,
com certificado e nota fiscal.
​​
Nosso time de instrutores in company é formado somente por
​
​
autores
​ ​
​
de Best Sellers
​ ​
Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
 
Eae Maik, tudo certo?
Parabéns pelo projeto, também achei que ficou muito legal.
O seu projeto já me deu algumas ideias.
Eu queria fazer um servidorzinho web em casa só para visualizar fotografias da
familia. Pensei gerar em CGI, com miniaturas e tudo mais.
Sei que é arcaico, mas acho mais simples do que tentar implementar isso
no Java + tomcat e todas as "voltas" da orientação a objeto. Ainda mais
se o "servidor" for a manivela.
Eu tenho a mesma dúvida que você, CGI é ultrapassado! Não sei se tem
algo que seja simples igual, em shell, que o substitua. E também não acho que
vale a pena aprender uma nova linguagem só para fazer algo simples.
Abs
--
Tiago Tarifa Munhoz
--
Tiago Tarifa Munhoz
maik.alberto@hotmail.com [shell-script]
2017-07-15 14:27:20 UTC
Permalink
Blz Tiago,

Já que o projeto está sendo visto com bons olhos aqui pelo pessoal, estou pensando em dar continuidade, isso é um incentivo e tanto, enfrentamos várias dificuldades na criação de projetos open source que nos levam a abandonarmos às vezes, o feedback com certeza é um revigorante. Recomecei a busca por uma solução que seria mais contemporânea em relação ao CGI, para outras linguagens encontram-se alternativas mais eficazes, mas para o Shell ainda não vi nada que atenda.
'Ernander (Nander)' ernander@gmail.com [shell-script]
2017-07-15 17:13:20 UTC
Permalink
Conte comigo! Nao Sou expert em shell mas ja Fix mta coisa graças a esta
Lista.

Entao nem q seja pra Ser tester EU me prontifico
Post by ***@hotmail.com [shell-script]
Blz Tiago,
Já que o projeto está sendo visto com bons olhos aqui pelo pessoal, estou
pensando em dar continuidade, isso é um incentivo e tanto, enfrentamos
várias dificuldades na criação de projetos open source que nos levam a
abandonarmos às vezes, o feedback com certeza é um revigorante. Recomecei a
busca por uma solução que seria mais contemporânea em relação ao CGI, para
outras linguagens encontram-se alternativas mais eficazes, mas para o Shell
ainda não vi nada que atenda.
maik alberto maik.alberto@hotmail.com [shell-script]
2017-07-15 18:20:46 UTC
Permalink
Nander,

o código tá aberto, é da comunidade, pode pegar, alterar e distribuir à vontade.

Testar é de suma importância, se puder instalar o projeto, assim tb verá a parte administrativa onde tem umas coisa bem legais. Toda e qualquer observação para melhoria do código (Júlio Neves já pontuou algumas), relatos e reparos quanto a brechas de segurança encontradas, ideias que podem ser acrescentadas, documentação, verificação de desempenho já que estamos falando do uso de uma dita "tecnologia antiga", tudo é válido.


________________________________
De: shell-***@yahoogrupos.com.br <shell-***@yahoogrupos.com.br> em nome de 'Ernander (Nander)' ***@gmail.com [shell-script] <shell-***@yahoogrupos.com.br>
Enviado: sábado, 15 de julho de 2017 14:13
Para: shell-***@yahoogrupos.com.br
Assunto: Re: [shell-script] Shell Script com CGI [Projeto Cloud]



Conte comigo! Nao Sou expert em shell mas ja Fix mta coisa graças a esta Lista.

Entao nem q seja pra Ser tester EU me prontifico


On Jul 15, 2017 11:27, "***@hotmail.com<mailto:***@hotmail.com> [shell-script]" <shell-***@yahoogrupos.com.br<mailto:shell-***@yahoogrupos.com.br>> wrote:


Blz Tiago,

Já que o projeto está sendo visto com bons olhos aqui pelo pessoal, estou pensando em dar continuidade, isso é um incentivo e tanto, enfrentamos várias dificuldades na criação de projetos open source que nos levam a abandonarmos às vezes, o feedback com certeza é um revigorante. Recomecei a busca por uma solução que seria mais contemporânea em relação ao CGI, para outras linguagens encontram-se alternativas mais eficazes, mas para o Shell ainda não vi nada que atenda.
Tiago Tarifa Munhoz tiagotarifa@gmail.com [shell-script]
2017-07-16 14:39:07 UTC
Permalink
Maik,
Um colega nosso da lista, o Ricardo, me falou de uma alternativa ao CGI
muito interessante, feita pelo Aurélio. Chama-se TXT2TAGS:
http://txt2tags.org
Eu não pesquisei a fundo, mas dê uma olhada e vê se te ajuda.

PS: Obrigado pelas palavras, estou fazendo um projeto pessoal também e
você descreveu exatamente o que estou passando.

Um forte abraço.
---
Tiago Tarifa Munhoz
maik alberto maik.alberto@hotmail.com [shell-script]
2017-07-18 02:35:51 UTC
Permalink
Dei uma olhada, parece que não é o que procuramos, mas vamos seguindo enquanto não encontramos.


De ontem até hj servidor deu problema, ficando off, como mencionado servidor caseiro com ADSL (um teto novo é bem vindo), estava longe, só agora pouco pude resolver.


Como falado anteriormente, já que foi visto com bons olhos, vou dar mais um gás no projeto.


Quem experimentou, talvez tenha visto que um problema no Projeto é a demora quando se seleciona distro maiores, um ponto é devido a conexão de onde está hospedo, mas vamos tratar isso como um incomodo e não como desculpa, já que podemos achar uma solução.


A ideia é gerar um módulo para fazer cache da imagens , assim excluindo o tempo de download.


As ideias surgem, entre elas: podem ser escolhido as imagens que serão baixadas para manter em um repositório local; também podendo gerar lista das imagens que serão ofertadas. Então segue o pontapé dado para começar essa etapa.


Source:

https://raw.githubusercontent.com/m41k/luw/master/opt/luw/tools/luw-images.sh


Teste:

http://luw.servehttp.com/cgi-bin/luw-images.sh

________________________________
De: shell-***@yahoogrupos.com.br <shell-***@yahoogrupos.com.br> em nome de Tiago Tarifa Munhoz ***@gmail.com [shell-script] <shell-***@yahoogrupos.com.br>
Enviado: domingo, 16 de julho de 2017 11:39
Para: shell-***@yahoogrupos.com.br
Assunto: Re: [shell-script] Shell Script com CGI [Projeto Cloud]



Maik,
Um colega nosso da lista, o Ricardo, me falou de uma alternativa ao CGI
muito interessante, feita pelo Aurélio. Chama-se TXT2TAGS:
http://txt2tags.org
Eu não pesquisei a fundo, mas dê uma olhada e vê se te ajuda.

PS: Obrigado pelas palavras, estou fazendo um projeto pessoal também e
você descreveu exatamente o que estou passando.

Um forte abraço.
---
Tiago Tarifa Munhoz
luzemario@gmail.com [shell-script]
2017-07-19 20:15:40 UTC
Permalink
Maik,

Posso te ajudar com esse "teto novo". Manda uma mensagem direta pra mim.

Luzemário Dantas

www.luzehost.com.br
maik alberto maik.alberto@hotmail.com [shell-script]
2017-07-24 03:52:35 UTC
Permalink
Conforme descrito anteriormente, dei continuidade na parte do gerenciamento das distros com cache, quem testou anteriormente e testar agora vai ver que a criação de container está bem mais rápido.


No meio do caminho aparecem algumas ideias, entre elas, pensei em algum tipo de "loading"(em teste).


Segue link para funcionamento do script (demonstração). http://luw.servehttp.com/cgi-bin/demo-repo.sh


Próximo passo:

- opção para escolha de recursos dos containers por parte do usuário (Memória e CPU).

________________________________
De: shell-***@yahoogrupos.com.br <shell-***@yahoogrupos.com.br> em nome de maik alberto ***@hotmail.com [shell-script] <shell-***@yahoogrupos.com.br>
Enviado: segunda-feira, 17 de julho de 2017 23:35
Para: shell-***@yahoogrupos.com.br
Assunto: Re: [shell-script] Shell Script com CGI [Projeto Cloud]



Dei uma olhada, parece que não é o que procuramos, mas vamos seguindo enquanto não encontramos.


De ontem até hj servidor deu problema, ficando off, como mencionado servidor caseiro com ADSL (um teto novo é bem vindo), estava longe, só agora pouco pude resolver.


Como falado anteriormente, já que foi visto com bons olhos, vou dar mais um gás no projeto.


Quem experimentou, talvez tenha visto que um problema no Projeto é a demora quando se seleciona distro maiores, um ponto é devido a conexão de onde está hospedo, mas vamos tratar isso como um incomodo e não como desculpa, já que podemos achar uma solução.


A ideia é gerar um módulo para fazer cache da imagens , assim excluindo o tempo de download.


As ideias surgem, entre elas: podem ser escolhido as imagens que serão baixadas para manter em um repositório local; também podendo gerar lista das imagens que serão ofertadas. Então segue o pontapé dado para começar essa etapa.


Source:

https://raw.githubusercontent.com/m41k/luw/master/opt/luw/tools/luw-images.sh


Teste:

http://luw.servehttp.com/cgi-bin/luw-images.sh

________________________________
De: shell-***@yahoogrupos.com.br <shell-***@yahoogrupos.com.br> em nome de Tiago Tarifa Munhoz ***@gmail.com [shell-script] <shell-***@yahoogrupos.com.br>
Enviado: domingo, 16 de julho de 2017 11:39
Para: shell-***@yahoogrupos.com.br
Assunto: Re: [shell-script] Shell Script com CGI [Projeto Cloud]



Maik,
Um colega nosso da lista, o Ricardo, me falou de uma alternativa ao CGI
muito interessante, feita pelo Aurélio. Chama-se TXT2TAGS:
http://txt2tags.org
Eu não pesquisei a fundo, mas dê uma olhada e vê se te ajuda.

PS: Obrigado pelas palavras, estou fazendo um projeto pessoal também e
você descreveu exatamente o que estou passando.

Um forte abraço.
---
Tiago Tarifa Munhoz

Loading...