26 lines
860 B
Ruby
26 lines
860 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require "rbconfig"
|
||
|
|
||
|
class ChromeInstalledChecker
|
||
|
class ChromeNotInstalled < StandardError; end
|
||
|
class ChromeVersionTooLow < StandardError; end
|
||
|
|
||
|
def self.run
|
||
|
if RbConfig::CONFIG['host_os'][/darwin|mac os/]
|
||
|
binary = "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
|
||
|
elsif system("command -v google-chrome-stable >/dev/null;")
|
||
|
binary = "google-chrome-stable"
|
||
|
end
|
||
|
binary ||= "google-chrome" if system("command -v google-chrome >/dev/null;")
|
||
|
|
||
|
if !binary
|
||
|
raise ChromeNotInstalled.new("Chrome is not installed. Download from https://www.google.com/chrome/browser/desktop/index.html")
|
||
|
end
|
||
|
|
||
|
if Gem::Version.new(`\"#{binary}\" --version`.match(/[\d\.]+/)[0]) < Gem::Version.new("59")
|
||
|
raise ChromeVersionTooLow.new("Chrome 59 or higher is required")
|
||
|
end
|
||
|
end
|
||
|
end
|