# typed: true # frozen_string_literal: true module OS # Helper module for querying system information on Linux. module Linux extend T::Sig module_function sig { returns(String) } def os_version if which("lsb_release") lsb_info = Utils.popen_read("lsb_release -a") description = lsb_info[/^Description:\s*(.*)$/, 1] codename = lsb_info[/^Codename:\s*(.*)$/, 1] if codename == "n/a" description else "#{description} (#{codename})" end elsif (redhat_release = Pathname.new("/etc/redhat-release")).readable? redhat_release.read.chomp else "Unknown" end end end # rubocop:disable Style/Documentation module Mac module_function # rubocop:disable Naming/ConstantName # rubocop:disable Style/MutableConstant ::MacOS = OS::Mac # rubocop:enable Naming/ConstantName # rubocop:enable Style/MutableConstant raise "Loaded OS::Linux on generic OS!" if ENV["HOMEBREW_TEST_GENERIC_OS"] def version Version::NULL end def full_version Version::NULL end def languages @languages ||= Array(ENV["LANG"]&.slice(/[a-z]+/)).uniq end def language languages.first end def sdk_root_needed? false end def sdk_path_if_needed(_v = nil) nil end def sdk_path nil end module Xcode module_function def version Version::NULL end def installed? false end end module CLT module_function def version Version::NULL end def installed? false end end end # rubocop:enable Style/Documentation end