diff --git a/Library/Homebrew/sorbet/files.yaml b/Library/Homebrew/sorbet/files.yaml index 1a85e96787..3272ee517e 100644 --- a/Library/Homebrew/sorbet/files.yaml +++ b/Library/Homebrew/sorbet/files.yaml @@ -456,7 +456,6 @@ false: - ./utils/git.rb - ./utils/github.rb - ./utils/popen.rb - - ./utils/user.rb false: - ./PATH.rb @@ -895,6 +894,7 @@ true: - ./utils/shell.rb - ./utils/svn.rb - ./utils/tty.rb + - ./utils/user.rb - ./version/null.rb strict: diff --git a/Library/Homebrew/sorbet/rbi/utils/user.rbi b/Library/Homebrew/sorbet/rbi/utils/user.rbi new file mode 100644 index 0000000000..49e9f1b3f4 --- /dev/null +++ b/Library/Homebrew/sorbet/rbi/utils/user.rbi @@ -0,0 +1,9 @@ +# typed: strict + +class User < String + def gui? + end + + def self.current + end +end diff --git a/Library/Homebrew/utils/user.rb b/Library/Homebrew/utils/user.rb index cf93d088d8..ce3e8e6b2e 100644 --- a/Library/Homebrew/utils/user.rb +++ b/Library/Homebrew/utils/user.rb @@ -16,6 +16,11 @@ class User < DelegateClass(String) end def self.current - @current ||= new(Etc.getpwuid(Process.euid).name) + return @current if defined?(@current) + + pwuid = Etc.getpwuid(Process.euid) + return if pwuid.nil? + + @current = new(pwuid.name) end end