Um momento massa de desenvolver uma biblioteca de uso geral é o chamado dogfooding, quando ela começa a ter funcionalidade suficiente pra ser usada no seu próprio ecossistema.
No caso da minha libtrilux, cheguei ao ponto em que ela mesma começa a prover o tratamento de parâmetros, a ajuda online e outros detalhes dos scripts que apoiam o desenvolvimento dela mesma.
Na imagem em laranja, você vê o script de deploy, tratando parâmetros e exibindo sua ajuda. Na azul, o código correspondente.
Imagem com fundo laranja mostrando uma janela do terminal contendo prompts, o comando ‘./deploy.sh -h’ e a resposta:
Usage:
deploy.sh parâmetros
Este script copia a versão de desenvolvimento da libtrilux para o ~/bin (renomeando-a para libtrilux.sh) e, opcionalmente, copia também para lá a biblioteca de utilitários do diretório utils.
Opções: \t-h exibe esta mensagem de ajuda \t-l copia apenas a biblioteca, sem os utilitários. \t-u copia apenas os utilitários, sem a biblioteca. Imagem com fundo azul, mostrando o editor de texto BBEdit, com o arquivo deploy.sh aberto, onde pode ser visto o texto a seguir, correspondente ao seu cabeçalho:
#!/usr/bin/env bash # # deploy.sh - move a libtrilux-devel (e seus utilitários) para o contexto de produção # # Copyright (c) 2025, Augusto Campos (https://augustocampos.net/). # Licensed under the Apache License, Version 2.0. #
E quando eu rodo esse mesmo script de deploy, ele também usa alguns recursos da biblioteca pra montar a interface com o usuário, entre outros detalhes.
Tela com fundo roxo, mostrando uma janela de terminal na qual está visível o comando ‘./deploy.sh’ e a sua saída:
ℹ️ Copiando a biblioteca [ OK ] Copy libtrilux-devel.sh to /Users/augusto/bin/libtrilux.sh
ℹ️ Copiando a coleção de utilitários /Users/augusto/Dropbox/devel/libtrilux/utils [ OK ] Copy ffmpeg-front to /Users/augusto/bin [ OK ] Copy mv2homebin.sh to /Users/augusto/bin [ OK ] Copy p8.sh to /Users/augusto/bin [ OK ] Copy plex-downres-720.sh to /Users/augusto/bin [ OK ] Copy plex-subsrename.sh to /Users/augusto/bin [ OK ] Copy touchmod.sh to /Users/augusto/bin