From 0d5a53ba2cba0df3ce7fb4a10087c20aef94c3b6 Mon Sep 17 00:00:00 2001 From: Shaun Jackman <sjackman@gmail.com> Date: Mon, 13 Mar 2017 16:56:35 -0700 Subject: [PATCH] Add extend/os/linux/system_config.rb Report the Linux kernel, OS, and gcc versions. --- .../Homebrew/extend/os/linux/system_config.rb | 42 +++++++++++++++++++ Library/Homebrew/extend/os/system_config.rb | 7 +++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Library/Homebrew/extend/os/linux/system_config.rb diff --git a/Library/Homebrew/extend/os/linux/system_config.rb b/Library/Homebrew/extend/os/linux/system_config.rb new file mode 100644 index 0000000000..e62b12e715 --- /dev/null +++ b/Library/Homebrew/extend/os/linux/system_config.rb @@ -0,0 +1,42 @@ +require "formula" + +class SystemConfig + class << self + def host_os_version + if which("lsb_release") + description = `lsb_release -d`.chomp.sub("Description:\t", "") + codename = `lsb_release -c`.chomp.sub("Codename:\t", "") + "#{description} (#{codename})" + elsif (redhat_release = Pathname.new("/etc/redhat-release")).readable? + redhat_release.read.chomp + else + "N/A" + end + end + + def host_gcc_version + gcc = Pathname.new "/usr/bin/gcc" + return "N/A" unless gcc.executable? + `#{gcc} --version 2>/dev/null`[/ (\d+\.\d+\.\d+)/, 1] + end + + def formula_version(formula) + return "N/A" unless CoreTap.instance.installed? + f = Formulary.factory formula + return "N/A" unless f.installed? + f.version + rescue FormulaUnavailableError + return "N/A" + end + + def dump_verbose_config(out = $stdout) + dump_generic_verbose_config(out) + out.puts "Kernel: #{`uname -mors`.chomp}" + out.puts "OS: #{host_os_version}" + out.puts "/usr/bin/gcc: #{host_gcc_version}" + ["glibc", "gcc", "xorg"].each do |f| + out.puts "#{f}: #{formula_version f}" + end + end + end +end diff --git a/Library/Homebrew/extend/os/system_config.rb b/Library/Homebrew/extend/os/system_config.rb index edc0071665..fec31f1fa6 100644 --- a/Library/Homebrew/extend/os/system_config.rb +++ b/Library/Homebrew/extend/os/system_config.rb @@ -1,2 +1,7 @@ require "system_config" -require "extend/os/mac/system_config" if OS.mac? + +if OS.mac? + require "extend/os/mac/system_config" +elsif OS.linux? + require "extend/os/linux/system_config" +end -- GitLab