dev-cmd/typecheck: Support typechecking in taps

```shell
$ brew typecheck homebrew/bundle
No sorbet/ directory found. Maybe you want to run 'srb init'?

A type checker for Ruby

Usage:
  srb                                 Same as "srb t"
  srb (init | initialize)             Initializes the `sorbet` directory
  srb rbi [options]                   Manage the `sorbet` directory
  srb (t | tc | typecheck) [options]  Typechecks the code

Options:
  -h, --help     View help for this subcommand.
  --version      Show version.

For full help:
  https://sorbet.org
Check https://docs.brew.sh/Typechecking for more information on how to resolve these errors.
```
This commit is contained in:
Issy Long 2024-08-12 18:11:21 +01:00
parent eaf0551252
commit 807093f276
No known key found for this signature in database

View File

@ -39,19 +39,20 @@ module Homebrew
conflicts "--lsp", "--update-all"
conflicts "--lsp", "--fix"
named_args :none
named_args :tap
end
sig { override.void }
def run
update = args.update? || args.update_all?
directory = args.no_named? ? HOMEBREW_LIBRARY_PATH : args.named.to_paths(only: :tap).first
groups = update ? Homebrew.valid_gem_groups : ["typecheck"]
Homebrew.install_bundler_gems!(groups:)
# Sorbet doesn't use bash privileged mode so we align EUID and UID here.
Process::UID.change_privilege(Process.euid) if Process.euid != Process.uid
HOMEBREW_LIBRARY_PATH.cd do
directory.cd do
if update
workers = args.debug? ? ["--workers=1"] : []
safe_system "bundle", "exec", "tapioca", "dsl", *workers