21128: Merge commit 'adbbc9e3c7a36d39b30f403555ee5889e32adcc0' into 21128-toolbar...
[arvados.git] / sdk / ruby-google-api-client / lib / google / api_client / environment.rb
1 # Copyright 2010 Google Inc.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15
16 module Google
17   class APIClient
18     module ENV
19       OS_VERSION = begin
20         if RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/
21           # TODO(bobaman)
22           # Confirm that all of these Windows environments actually have access
23           # to the `ver` command.
24           `ver`.sub(/\s*\[Version\s*/, '/').sub(']', '').strip
25         elsif RUBY_PLATFORM =~ /darwin/i
26           "Mac OS X/#{`sw_vers -productVersion`}"
27         elsif RUBY_PLATFORM == 'java'
28           # Get the information from java system properties to avoid spawning a
29           # sub-process, which is not friendly in some contexts (web servers).
30           require 'java'
31           name = java.lang.System.getProperty('os.name')
32           version = java.lang.System.getProperty('os.version')
33           "#{name}/#{version}"
34         else
35           `uname -sr`.sub(' ', '/')
36         end
37       rescue Exception
38         RUBY_PLATFORM
39       end
40     end
41   end
42 end