From bc21cf366eb29dda57f5962679c932fe433c892a Mon Sep 17 00:00:00 2001 From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com> Date: Thu, 31 Oct 2024 15:01:43 +0800 Subject: [PATCH] os: use native ruby calls for `uname` This avoids the overhead of shelling out. --- Library/Homebrew/os.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/os.rb b/Library/Homebrew/os.rb index a22add846f..899db97692 100644 --- a/Library/Homebrew/os.rb +++ b/Library/Homebrew/os.rb @@ -30,8 +30,8 @@ module OS # @api public sig { returns(Version) } def self.kernel_version - require "utils/popen" - @kernel_version ||= T.let(Version.new(Utils.safe_popen_read("uname", "-r").chomp), T.nilable(Version)) + require "etc" + @kernel_version ||= T.let(Version.new(Etc.uname.fetch(:release)), T.nilable(Version)) end # Get the kernel name. @@ -39,8 +39,8 @@ module OS # @api public sig { returns(String) } def self.kernel_name - require "utils/popen" - @kernel_name ||= T.let(Utils.safe_popen_read("uname", "-s").chomp, T.nilable(String)) + require "etc" + @kernel_name ||= T.let(Etc.uname.fetch(:sysname), T.nilable(String)) end ::OS_VERSION = T.let(ENV.fetch("HOMEBREW_OS_VERSION").freeze, String)