aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorMike McQuaid2016-04-25 18:01:15 +0100
committerMike McQuaid2016-05-08 16:51:22 +0100
commit9e7b8c61a99c4d4c69da36f95759e375b7a4e116 (patch)
treea5709f42df44dc4db75ac0a4e5b57a68a12acac9 /Library/Homebrew/extend
parente316cc9296079a212a72ab89c0c11e894b546ef9 (diff)
downloadbrew-9e7b8c61a99c4d4c69da36f95759e375b7a4e116.tar.bz2
Make config command cross-platform.
Closes #168. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/os/mac/system_config.rb56
-rw-r--r--Library/Homebrew/extend/os/system_config.rb5
2 files changed, 61 insertions, 0 deletions
diff --git a/Library/Homebrew/extend/os/mac/system_config.rb b/Library/Homebrew/extend/os/mac/system_config.rb
new file mode 100644
index 000000000..4a06d07ef
--- /dev/null
+++ b/Library/Homebrew/extend/os/mac/system_config.rb
@@ -0,0 +1,56 @@
+class SystemConfig
+ class << self
+ def xcode
+ if instance_variable_defined?(:@xcode)
+ @xcode
+ elsif MacOS::Xcode.installed?
+ @xcode = MacOS::Xcode.version
+ @xcode += " => #{MacOS::Xcode.prefix}" unless MacOS::Xcode.default_prefix?
+ @xcode
+ end
+ end
+
+ def clt
+ if instance_variable_defined?(:@clt)
+ @clt
+ elsif MacOS::CLT.installed? && MacOS::Xcode.version >= "4.3"
+ @clt = MacOS::CLT.version
+ end
+ end
+
+ def macports_or_fink
+ @ponk ||= MacOS.macports_or_fink
+ @ponk.join(", ") unless @ponk.empty?
+ end
+
+ def describe_xquartz
+ return "N/A" unless MacOS::XQuartz.installed?
+ "#{MacOS::XQuartz.version} => #{describe_path(MacOS::XQuartz.prefix)}"
+ end
+
+ def describe_system_ruby
+ s = ""
+ case RUBY_VERSION
+ when /^1\.[89]/, /^2\.0/
+ s << "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
+ else
+ s << RUBY_VERSION
+ end
+
+ if RUBY_PATH.to_s !~ %r{^/System/Library/Frameworks/Ruby.framework/Versions/[12]\.[089]/usr/bin/ruby}
+ s << " => #{RUBY_PATH}"
+ end
+ s
+ end
+
+ def dump_verbose_config(f = $stdout)
+ dump_generic_verbose_config(f)
+ f.puts "System Ruby: #{describe_system_ruby}"
+ f.puts "OS X: #{MacOS.full_version}-#{kernel}"
+ f.puts "Xcode: #{xcode ? xcode : "N/A"}"
+ f.puts "CLT: #{clt ? clt : "N/A"}"
+ f.puts "X11: #{describe_xquartz}"
+ f.puts "MacPorts/Fink: #{macports_or_fink}" if macports_or_fink
+ end
+ end
+end
diff --git a/Library/Homebrew/extend/os/system_config.rb b/Library/Homebrew/extend/os/system_config.rb
new file mode 100644
index 000000000..cf7b69cb6
--- /dev/null
+++ b/Library/Homebrew/extend/os/system_config.rb
@@ -0,0 +1,5 @@
+require "system_config"
+
+if OS.mac?
+ require "extend/os/mac/system_config"
+end