-
Visão geral do artigo
- Apresenta vários truques para automatizar ferramentas de CLI combinando Ruby com scripts Bash.
- Outras linguagens de script também podem ser usadas, mas o texto destaca a legibilidade e a flexibilidade do Ruby.
-
Por que Ruby em vez de Bash?
- Ruby oferece tipos de dados claros (inteiros, ponto flutuante, strings, arrays, hashes etc.), o que melhora a legibilidade do código.
- Para usuários de macOS, se o Homebrew estiver instalado, o Ruby que vem junto aumenta bastante sua utilidade.
- Ruby é útil em scripts de build e automação, como com CocoaPod e Fastlane.
- Formatos de dados como JSON, CSV e YAML podem ser tratados facilmente com bibliotecas padrão.
-
Escrevendo scripts Ruby One-Liner
- Scripts de uma linha podem ser executados no formato
ruby -e "<expression>". - É possível receber e processar a saída de outras ferramentas de CLI usando pipes e redirecionamento.
- A opção
-rpermite pré-carregar as bibliotecas necessárias e expandir as funcionalidades.
- Scripts de uma linha podem ser executados no formato
-
Combinando com outras ferramentas de CLI
- Ao combinar Ruby com AWS CLI, Git, GitHub CLI, jq, curl e outras ferramentas, dá para potencializar ao máximo os pontos fortes de cada uma.
- Exemplo de processamento de dados JSON:
- Após chamar uma API com
curl, os dados são analisados com a biblioteca JSON do Ruby e campos específicos (por exemplo,title) são exibidos.
- Após chamar uma API com
- Exemplo de processamento de dados YAML:
- Depois de ler um arquivo com
cat config.yaml, ele é analisado com a biblioteca YAML do Ruby para extrair valores específicos de configuração.
- Depois de ler um arquivo com
- Também é possível fazer pós-processamento da saída de ferramentas de CLI com Ruby para montar workflows de automação mais flexíveis.
-
Processando dados não estruturados (exemplo com Git Log)
- Nem todos os dados são estruturados como JSON, CSV ou YAML.
- Com expressões regulares e os recursos de processamento de texto do Ruby, é possível ler logs e mensagens de sistema linha por linha e extrair as informações necessárias.
- Exemplo de script com Git Log:
- Extração de logs de commit em uma linha com
git log --oneline #{file}. - Seleção interativa dos logs desejados com
gum choose --limit 100. - Extração do hash de commit de cada log selecionado e exibição das alterações detalhadas com
git show. - Por fim, os logs selecionados são reorganizados e exibidos no formato de checklist.
- Extração de logs de commit em uma linha com
-
Encerrando
- Ao combinar ferramentas de CLI com scripts em Ruby, é possível criar ferramentas de automação poderosas com combinações simples de comandos.
- Processamento complexo de dados, análise de logs e tarefas de controle de versão podem ser automatizados de forma eficiente para maximizar a produtividade.
- Um começo pequeno pode gerar grandes mudanças, e o autor recomenda que você também comece seu próprio side project.
- Como referência, Perl também é útil, e materiais como o Perl One-Liners Guide podem ajudar.
Ainda não há comentários.