Executando verificação de segurança...
2

Um novo jeito de escrever Shell Scripts | Utilizando Javascript com `zx` da Google!

Existem diversas razões para optar por escrever shell scripts: automação de tarefas, administração de sistemas, scripts de redes e inúmeras outras possibilidades. Entretanto, nem todos se sentem confortáveis com as linguagens nativas de script de shell do sistema, como o .sh no Linux ou .bat no Windows. Neste artigo, apresentarei uma abordagem alternativa para a escrita de shell scripts de maneira mais acessível, utilizando Node.js e a biblioteca zx desenvolvida pela Google. Por fim, criaremos um script que automatiza o processo de adicionar, comitar e fazer push no git.

Let’s Get Started:

Vamos iniciar um projeto novo no Node:

npm init -y

Instalando o zx:

npm install zx

Criando um Exemplo Simples com zx:

Crie um arquivo chamado index.js e adicione o seguinte código:

import { $ } from "zx";
$`echo Hello World!`  

Execute o arquivo no seu terminal usando node index.js.
Se tudo ocorrer corretamente, você verá a mensagem impressa no terminal.
*Note que não utilizamos console.log() em nenhum momento.

Automação de Git com Script:

Às vezes, tarefas repetitivas como adicionar, comitar e fazer push para o GitHub podem se tornar cansativas:

git add .
git commit -m ‘Alguma Coisa’
git push

Por esse motivo, vamos implementar uma solução usando Javascript.
Vamos criar um script simples!
Substitua o exemplo anterior pelo código a seguir:

import { $ } from "zx"; // Importa a biblioteca zx

if (process.argv.length === 2) { //Verifica se o usuário digitou alguma mensagem
   console.error('Por favor, digite a mensagem do Commit!'); //Exibe mensagem de erro
   process.exit(1); //Finaliza a execução
 }
else{
   var message = process.argv[2] //Captura a mensagem
   // console.log(message) //Exibe a mensagem
   await $`git add .` //Adiciona o arquivo no Git
   await $`git commit -m ${message}` //Comita o arquivo com a mensagem digitada
   await $`git push` //Envia o arquivo para o Git
   console.log("Add, Commit e Push realizado com sucesso!")
   process.exit(1)

}

Considerações Finais:

Em suma, a integração da biblioteca zx com Javascript não apenas simplifica tarefas no shell, mas também catalisa a automação com elegância para quem conhece bem a linguagem. Ao abraçar essa combinação, se desvendam soluções mais fluidas e poderosas para a automação de processos no shell. Para os familiarizados com Javascript, essa abordagem não apenas facilita a criação de scripts, mas também eleva a eficácia e legibilidade das tarefas executadas, oferecendo uma via expressa rumo à automação, podendo ser simples ou complexa e sofisticada.

Documentação do zx:
https://github.com/google/zx

Subi o código para o meu Github:

https://github.com/lucasedson/git-auto-push

Carregando publicação patrocinada...
1

Achei interessante, realmente a ideia do bash é pra script simples, minha máxima é, se tu ta precisando fazer loop no bash já ta errado.
Mas não trocaria python por javascript pra esse tipo de script

1

Ah sim!, Python tbm é maravilhoso para isso! Mas acreito que idéia do zxé que digamos que eu queira integrar uma Aplicação Electron Desktop com um Script Python (ou de qualquer outra linguagem de programação) E vc não queira criar uma api http. Só utilizar o output do terminal. O zxfacilitaria bastante.

1

Amigo, seu exemplo é meio superficial, pois o próprio print do python envia para o stdout.
Toda linguagem de programação consegue trocar dados e nem sempre é necessário o uso do protocolo http/https, existem muitos outros.

1
1