From feedc5c84e18bafc9d3eab079fd983a9f4fb631c Mon Sep 17 00:00:00 2001 From: Issy Long Date: Tue, 13 Aug 2024 11:04:15 +0100 Subject: [PATCH] dev-cmd/typecheck: Use Sorbet's `--dir` to set the tap path - This means we don't have to copy config files around, and users get instant results rather than having to run `srb init`. --- Library/Homebrew/dev-cmd/typecheck.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/dev-cmd/typecheck.rb b/Library/Homebrew/dev-cmd/typecheck.rb index b75040638abc0..86b1d15a036e3 100644 --- a/Library/Homebrew/dev-cmd/typecheck.rb +++ b/Library/Homebrew/dev-cmd/typecheck.rb @@ -44,15 +44,18 @@ class Typecheck < AbstractCommand sig { override.void } def run + if (args.dir.present? || args.file.present?) && args.named.present? + raise UsageError, "Cannot use `--dir` or `--file` when specifying a tap." + end + 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 - directory.cd do + HOMEBREW_LIBRARY_PATH.cd do if update workers = args.debug? ? ["--workers=1"] : [] safe_system "bundle", "exec", "tapioca", "dsl", *workers @@ -96,10 +99,11 @@ def run end srb_exec += ["--ignore", args.ignore] if args.ignore.present? - if args.file.present? || args.dir.present? + if args.file.present? || args.dir.present? || (tap_dir = args.named.to_paths(only: :tap).first).present? cd("sorbet") do srb_exec += ["--file", "../#{args.file}"] if args.file srb_exec += ["--dir", "../#{args.dir}"] if args.dir + srb_exec += ["--dir", tap_dir.to_s] if tap_dir end end success = system(*srb_exec)