fix: Switch to safer Open3 to determine OS_VERSION

This commit is contained in:
Gomez 2020-05-11 16:47:48 -05:00 committed by GitHub
parent 144e9b375e
commit a19b0d0fa9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 3 deletions

View File

@ -12,6 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
require 'open3'
module Google
module Apis
# Client library version
@ -21,16 +23,19 @@ module Google
# @private
OS_VERSION = begin
if RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/
`ver`.sub(/\s*\[Version\s*/, '/').sub(']', '')
output, _ = Open3.capture2('ver')
output.sub(/\s*\[Version\s*/, '/').sub(']', '')
elsif RUBY_PLATFORM =~ /darwin/i
"Mac OS X/#{`sw_vers -productVersion`}"
output, _ = Open3.capture2('sw_vers', '-productVersion')
"Mac OS X/#{output}"
elsif RUBY_PLATFORM == 'java'
require 'java'
name = java.lang.System.getProperty('os.name')
version = java.lang.System.getProperty('os.version')
"#{name}/#{version}"
else
`uname -sr`.sub(' ', '/')
output, _ = Open3.capture2('uname', '-sr')
output.sub(' ', '/')
end.strip
rescue
RUBY_PLATFORM