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