Skip to content

[5/9] feat(brew): create new tool folders for universal brew formulae #116

@ooloth

Description

@ooloth

Goal

Create tools/ folders for brew formulae currently managed only via the hand-maintained main Brewfile at tools/homebrew/config/Brewfile. Each new folder makes the tool self-contained and discoverable.

Context

This is issue 5 of 9 in a sequential migration to a single aggregated brew bundle call.

Prerequisite: Complete issue #115 (4/9) first.

Minimum files per tool

For a brew-only tool with no config: Brewfile, utils.bash, install.bash.
Use tools/@new/ as a template. See tools/btop/ or tools/eza/ for minimal examples.

update.bash is not needed — brew updates are handled globally by the aggregated Brewfile generator (issue #119).

Brewfile template

# machine detection — wrap entries in a conditional block to restrict by machine:
#   if computer_name == "Air" ... end
#   if computer_name == "Mini" ... end
#   if ["7385-Y3FH97X-MAC", "MULO-JQ97NW-MBP"].include?(computer_name) ... end
computer_name = `networksetup -getcomputername`.chomp

brew "formula-name"

Checklist

  • tools/bats-core/brew "bats-core"
  • tools/coreutils/brew "coreutils"
  • tools/git-delta/brew "git-delta"
  • tools/github-keygen/brew "github-keygen"
  • tools/goose/brew "goose"
  • tools/httpie/brew "httpie"
  • tools/imagemagick/brew "imagemagick"
  • tools/jq/brew "jq"
  • tools/kubectx/brew "kubectx"
  • tools/m-cli/brew "m-cli"
  • tools/mas/brew "mas"
  • tools/postgresql/brew "postgresql@14"
  • tools/speedtest-cli/brew "speedtest-cli"

Packages to audit before creating folders

These are likely build subdependencies of other brew packages rather than directly-used tools. If so, they belong in the relevant tool's Brewfile — not as top-level tool folders.

  • libpq — PostgreSQL client library; create tools/libpq/ only if used directly (e.g. psql independently of the postgresql formula)
  • svn — Subversion; likely pulled in as a build dependency by another formula; verify before creating a folder

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions