# homebrew-google-terminal-search

Tap Homebrew que instala o google-terminal-search com um brew install

- URL: https://fernando.moretes.com/open-source/homebrew-google-terminal-search

- Markdown: https://fernando.moretes.com/open-source/homebrew-google-terminal-search/guide.md?lang=pt

- GitHub: https://github.com/fernando-moretes/dot-homebrew-google-terminal-search

- Homepage: https://fernando.moretes.com

- Language: Ruby

- Topics: cli, developer-tools, homebrew, homebrew-tap, moretes, package-manager, portfolio, ruby

- Stars: 1

- Forks: 0

- Updated: 2026-09-08T20:36:10Z

---

Este repositório é o tap Homebrew do `google-terminal-search`: uma fórmula Ruby que transforma "clona, instala dependência, cria alias" em um único `brew install` — e que se atualiza pelo mesmo `brew upgrade` que cuida do resto da máquina.

## O que é e por que existe

O `google-terminal-search` é uma ferramenta de linha de comando minha para pesquisar no Google sem sair do terminal. Ele mora em outro repositório; este aqui não tem uma linha da ferramenta em si. O que tem é a **fórmula**: um arquivo Ruby que diz ao Homebrew de onde baixar a versão publicada, como verificar o `sha256` do artefato, quais dependências resolver e onde colocar o binário no `PATH`.

A razão de existir é de manutenção, não de conveniência. Instalar uma CLI por `git clone` funciona no primeiro dia; no décimo mês ninguém lembra onde está o clone, qual versão está rodando nem se o alias no `.zshrc` ainda aponta para o lugar certo. Toda ferramenta que eu uso todo dia paga esse custo — a diferença é se ele fica visível ou não.

Com um tap, o Homebrew passa a ser o dono do ciclo de vida: `brew install` instala, `brew upgrade` atualiza, `brew uninstall` remove sem deixar resto, e `brew list --versions` responde "qual versão está aqui?" em uma linha. A fórmula é o contrato entre o repositório da ferramenta e a máquina de quem instala. Separar a fórmula em repositório próprio é convenção do Homebrew — o tap precisa ser um repositório Git cujo conteúdo o `brew` consegue clonar e ler sozinho.

## Como um brew install percorre este repositório

O tap é só o ponteiro. O código da ferramenta vem do release; o Homebrew verifica o hash antes de instalar.

### 💻 Máquina local — Homebrew

- brew CLI resolve tap + fórmula (compute)
- Cellar + symlink /opt/homebrew/bin (storage)

### 🌐 GitHub — fernando-moretes

- dot-homebrew-google-terminal-search Formula/*.rb (ci)
- google-terminal-search release tarball + sha256 (external)

### Fluxos

- dev -> brew: brew tap / install
- brew -> tap: clona o tap, lê a fórmula
- brew -> tool: baixa a versão da fórmula
- tool -> brew: confere sha256
- brew -> cellar: instala e linka no PATH

> **O nome do repositório tem um prefixo dot-:** O atalho `brew tap usuario/nome` só funciona quando o repositório se chama exatamente `homebrew-nome`. Este se chama `dot-homebrew-google-terminal-search` — o prefixo veio da migração dos repositórios para a organização. Consequência prática: `brew tap fernando-moretes/google-terminal-search` sozinho não resolve. Passe a URL completa no `brew tap`, como no passo a passo abaixo. É o tipo de falha que não avisa direito: o erro fala em "repository not found" e você gasta dez minutos suspeitando de rede.

## Instalar e usar

1. **Adicione o tap pela URL completa** — `brew tap fernando-moretes/google-terminal-search https://github.com/fernando-moretes/dot-homebrew-google-terminal-search`. O Homebrew clona o repositório em `$(brew --repository)/Library/Taps/` e passa a enxergar a fórmula.

2. **Instale a fórmula** — `brew install google-terminal-search`. Se houver outra fórmula com o mesmo nome em outro tap, qualifique: `brew install fernando-moretes/google-terminal-search/google-terminal-search`.

3. **Confira o que foi instalado** — `brew info google-terminal-search` mostra versão, origem e dependências; `which google-terminal-search` confirma que o symlink está no `PATH`.

4. **Atualize junto com o resto** — `brew update && brew upgrade google-terminal-search`. O `brew update` puxa o tap; a fórmula nova aponta para a versão nova.

5. **Remova sem deixar rastro** — `brew uninstall google-terminal-search` e, se não quiser mais o tap, `brew untap fernando-moretes/google-terminal-search`.

_Quickstart completo, do tap ao primeiro comando_

```bash
# 1. tap pela URL completa (o repositório não segue o nome homebrew-<x>)
brew tap fernando-moretes/google-terminal-search \
  https://github.com/fernando-moretes/dot-homebrew-google-terminal-search

# 2. instalar
brew install google-terminal-search

# 3. conferir
brew info google-terminal-search
which google-terminal-search

# 4. manter
brew update && brew upgrade google-terminal-search
```

## Como a fórmula funciona

Uma fórmula Homebrew é uma classe Ruby que herda de `Formula`. Os campos que fazem o trabalho: `url` aponta para o artefato de uma versão específica (tarball do release ou tag do Git), `sha256` fixa o hash que o download precisa bater, `depends_on` declara o que precisa existir antes, e `install` diz para onde vai cada arquivo — normalmente `bin.install "google-terminal-search"`. Um bloco `test do` fecha o ciclo: `brew test` executa a ferramenta instalada e falha se ela não responder.

**Segurança:** o `sha256` é o que impede instalar um artefato trocado. Se o hash não bate, o Homebrew aborta antes de executar qualquer coisa. Por isso uma fórmula nunca deveria apontar para `main` sem hash — o "sempre pega o último" custa a garantia de que o que instalou é o que foi publicado.

**Versionamento:** a versão que a fórmula instala é a que está escrita nela. Subir a ferramenta não atualiza este tap sozinho; alguém — ou um workflow — precisa trocar `url` e `sha256` e abrir commit. É o custo de manutenção real deste repositório: pequeno por release, mas recorrente.

**Pipeline:** o repositório segue as convenções do `platform` — branch `<tipo>/<escopo>`, Conventional Commits, versão derivada dos commits. O `pr-lint`, o CI e a checagem de segurança vêm de workflows reutilizáveis; corrigir a régua é mudar um arquivo lá, não aqui.

## O que este tap te dá

- Instalação e atualização pelo mesmo `brew` que cuida do resto da máquina — nenhum clone solto para lembrar depois.
- Verificação de `sha256` em todo download: artefato diferente do publicado não instala.
- Remoção limpa com `brew uninstall`, sem resíduo em `.zshrc` ou `~/bin`.
- Fórmula versionada em Git: dá para ver em qual commit a versão mudou e por quê.
- Modelo reaproveitável para as outras CLIs do portfólio — o mesmo esqueleto serve para qualquer ferramenta com release publicado.

> **Testando uma mudança na fórmula antes de abrir PR:** Edite o arquivo dentro do tap já clonado (`cd $(brew --repository)/Library/Taps/fernando-moretes/homebrew-google-terminal-search`), depois rode `brew install --build-from-source google-terminal-search`, `brew test google-terminal-search` e `brew audit --strict google-terminal-search`. O `audit` pega o que passa despercebido no olho: hash faltando, URL sem HTTPS, campo fora de ordem. Só depois abra a branch `fix/` ou `chore/`.

## Perguntas frequentes

### Por que não publicar direto no homebrew-core?

O `homebrew-core` exige notabilidade (estrelas, forks, tempo de vida) e revisão de mantenedores em cada versão. Para uma ferramenta pessoal com um usuário ativo, um tap próprio entrega o mesmo `brew install` sem a fila — e sem depender de terceiros para subir versão.

### Funciona em Linux?

O Homebrew roda em Linux (Linuxbrew), e a fórmula funciona se o artefato e as dependências funcionarem lá. Não testo essa combinação com regularidade; trate como não suportado até haver um `test do` verde num runner Linux.

### O que acontece se a ferramenta lançar versão e o tap não for atualizado?

Nada quebra — você continua com a versão que a fórmula fixa. É o comportamento desejado: a fórmula é um pino, não um espelho. A atualização é um commit neste repositório trocando `url` e `sha256`.

## Referências

- [fernando-moretes/dot-homebrew-google-terminal-search (GitHub)](https://github.com/fernando-moretes/dot-homebrew-google-terminal-search)
- [fernando.moretes.com](https://fernando.moretes.com)
- [Homebrew — Formula Cookbook](https://docs.brew.sh/Formula-Cookbook)
- [Homebrew — How to Create and Maintain a Tap](https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap)
- [Conventional Commits](https://www.conventionalcommits.org)

## Veredito

Use este tap quando você está no macOS (ou Linuxbrew), quer o `google-terminal-search` como parte da máquina e não como um clone que envelhece, e aceita que a versão instalada é a que a fórmula fixa. Se você está desenvolvendo a ferramenta em si, clone o repositório dela — o tap serve para consumir, não para editar. E se você tem outras CLIs próprias com release publicado, o valor maior está no esqueleto: uma fórmula deste tamanho custa menos para manter do que o alias que você escreveria no `.zshrc` e esqueceria em três meses.

## Links

- [GitHub repository](https://github.com/fernando-moretes/dot-homebrew-google-terminal-search)
- [Homepage](https://fernando.moretes.com)
