homebrew-google-terminal-search
Tap Homebrew do google-terminal-search: um `brew install` no lugar de copiar script à mão
git clone https://github.com/fernando-moretes/dot-homebrew-google-terminal-search.gitOuvir guia
gerado ao ouvirGerado apenas no primeiro play
Com tecnologia Amazon Polly + OmniVoice
Este repositório é o tap Homebrew do google-terminal-search: uma fórmula Ruby que diz ao brew de onde baixar a ferramenta, como conferir o hash e onde colocar o executável no PATH.
Por que um repositório só para distribuir um script
O google-terminal-search é um script Bash curto, sem dependências, que abre uma busca no Google a partir do terminal. Ele mora em outro repositório, o tool-google-terminal-search. Este aqui não tem código da ferramenta: tem só a receita de instalação.
A pergunta que importa não é "dá para instalar sem Homebrew?". Dá: basta copiar o arquivo para /usr/local/bin e dar chmod +x. A pergunta é como você atualiza isso daqui a seis meses em três máquinas. Script copiado à mão não tem versão, não tem hash e não tem upgrade. Cada máquina fica numa revisão diferente e ninguém sabe qual.
Com o tap, a versão instalada é a que a fórmula aponta, o download é conferido contra um sha256 fixo e brew upgrade resolve o resto. O custo de manter não é escrever a fórmula, que leva minutos. É lembrar de atualizar url e sha256 a cada release, e é isso que a esteira do repositório existe para tornar rotina.
O nome do repositório quebra o atalho do `brew tap`
brew tap fernando-moretes/google-terminal-search procura um repositório chamado homebrew-google-terminal-search. Depois da migração para a org, o nome passou a ter o prefixo dot-, então o atalho falha. Passe a URL explícita no segundo argumento, como no passo a passo abaixo.
Instalar e usar
- 1
Registrar o tap com a URL explícita
brew tap fernando-moretes/google-terminal-search https://github.com/fernando-moretes/dot-homebrew-google-terminal-search. Obrewclona o repositório em$(brew --repository)/Library/Taps/e passa a enxergar a fórmula. - 2
Instalar a fórmula
brew install google-terminal-search. Se outro tap tiver fórmula com o mesmo nome, qualifique:brew install fernando-moretes/google-terminal-search/google-terminal-search. - 3
Conferir o que foi instalado
brew info google-terminal-searchmostra versão e origem;brew list google-terminal-searchlista os arquivos e confirma o nome do executável que entrou noPATH. - 4
Buscar
Segundo o README da ferramenta, o comando é
googleseguido da consulta entre aspas, por exemplogoogle "lambda timeout 900 segundos". - 5
Atualizar e remover
brew update && brew upgrade google-terminal-searchpuxa a fórmula nova. Para sair:brew uninstall google-terminal-searchebrew untap fernando-moretes/google-terminal-search.
brew tap fernando-moretes/google-terminal-search \
https://github.com/fernando-moretes/dot-homebrew-google-terminal-search
brew install google-terminal-search
brew info google-terminal-searchO caminho de um `brew install`
O tap só guarda a receita. O artefato vem do repositório da ferramenta, e o hash na fórmula é o que liga os dois.
- Homebrew · brew tap / install
- Executável · symlink no PATH
- Fórmula Ruby · url + sha256 + install
- Workflows do platform · pr-lint, CI, release
- tool-google-terminal-search · artefato versionado
Como a fórmula funciona
Uma fórmula Homebrew é uma classe Ruby que herda de Formula. Quatro campos fazem o trabalho:
url: aponta para o artefato de uma versão específica, uma tag ou tarball de release do repositório da ferramenta.sha256: o hash que o download precisa bater. Se o arquivo mudar no servidor, obrewaborta antes de executar qualquer coisa.depends_on: o que precisa existir antes. Num script Bash sem dependências, a lista tende a ser vazia.install: onde cada arquivo vai, tipicamentebin.install, que copia para a Cellar e cria o symlink noPATH.
O sha256 é o campo que mais importa e o que mais falha em silêncio. Fórmula apontando para main sem hash instala o que estiver no branch naquele minuto: duas máquinas que rodaram brew install em dias diferentes podem ter scripts diferentes sob a mesma versão. Por isso a fórmula precisa apontar para artefato imutável.
O tap é por natureza de terceiro: o brew não audita o conteúdo como faz com o homebrew-core. Quem instala confia em quem mantém. Abra o .rb antes de instalar; são poucas linhas e é o único jeito de saber o que vai rodar na sua máquina.
Como o repositório é mantido
O repositório segue as convenções de fernandofatech/platform, as mesmas de todo o portfólio:
- Branch:
<tipo>/<escopo>, comfeat/,fix/,chore/oudocs/. - Commit e título de PR: Conventional Commits.
- Versão: sai dos commits. Ninguém escreve número de versão à mão.
A esteira (pr-lint, CI, segurança e release) vem dos workflows reutilizáveis do platform. Corrigir a régua é mudar um arquivo lá, não aqui. Para um repositório deste tamanho isso parece exagero, e seria, se fosse só um. Com dezenas de repositórios pequenos, a régua centralizada é o que impede cada um de ter um CI próprio meio quebrado que ninguém lembra de atualizar.
Antes de abrir PR mexendo na fórmula, rode localmente brew install --build-from-source google-terminal-search e brew audit --strict google-terminal-search. O audit pega o que passa no olho: hash faltando, URL sem HTTPS, campo fora de ordem.
Perguntas frequentes
Preciso de Ruby instalado?
Não. A fórmula é Ruby, mas quem a interpreta é o próprio Homebrew, que traz o Ruby dele. A ferramenta instalada é Bash.
Funciona no Linux?
Em princípio sim, via Homebrew on Linux, já que o script não depende de nada específico de macOS para ser instalado. Não testei em todas as distribuições; se algo falhar, abra uma issue com a saída do brew doctor.
Por que não mandar para o `homebrew-core`?
O homebrew-core exige notabilidade e um processo de revisão que não faz sentido para um script pessoal com uma estrela. O tap próprio dá versão e upgrade sem essa fila.
Referências
Para quem é
Use este tap quando você já trabalha com Homebrew e quer o google-terminal-search em mais de uma máquina com a mesma versão e upgrade de um comando. Se for uma máquina só e você não pretende atualizar, copiar o script direto do repositório da ferramenta resolve com menos peças. Em qualquer dos casos, leia a fórmula antes: tap de terceiro roda com a sua permissão.
Deep dives de arquitetura, AWS, IA e mercado: direto no seu email. Grátis.
Sem spam · cancele quando quiser