class Screengrab::DependencyChecker

Public Class Methods

check(android_env) click to toggle source
# File lib/screengrab/dependency_checker.rb, line 3
def self.check(android_env)
  return if Helper.test?

  check_adb(android_env)
  check_aapt(android_env)
end
check_aapt(android_env) click to toggle source
# File lib/screengrab/dependency_checker.rb, line 31
def self.check_aapt(android_env)
  android_home = android_env.android_home
  aapt_path = android_env.aapt_path

  warn_if_command_path_not_relative_to_android_home('aapt', android_home, aapt_path)
  # aapt is not required in order to function, so we'll only warn if we can't find it.
  warn_missing_aapt(android_home) unless aapt_path
end
check_adb(android_env) click to toggle source
# File lib/screengrab/dependency_checker.rb, line 10
def self.check_adb(android_env)
  android_home = android_env.android_home
  adb_path = android_env.adb_path

  warn_if_command_path_not_relative_to_android_home('adb', android_home, adb_path)
  # adb is required to function, so we'll quit noisily if we couldn't find it
  raise_missing_adb(android_home) unless adb_path
end
raise_missing_adb(android_home) click to toggle source
# File lib/screengrab/dependency_checker.rb, line 19
def self.raise_missing_adb(android_home)
  if android_home
    UI.error "The `adb` command could not be found relative to your provided ANDROID_HOME at #{android_home}"
    UI.error "Please ensure that the Android SDK is installed and the platform-tools directory is present"
  else
    UI.error 'The `adb` command could not be found on your PATH'
    UI.error 'Please ensure that the Android SDK is installed and the platform-tools directory is present and on your PATH'
  end

  UI.user_error!('adb command not found')
end
warn_if_command_path_not_relative_to_android_home(cmd_name, android_home, cmd_path) click to toggle source
# File lib/screengrab/dependency_checker.rb, line 50
def self.warn_if_command_path_not_relative_to_android_home(cmd_name, android_home, cmd_path)
  if android_home && cmd_path && !cmd_path.start_with?(android_home)
    UI.important "Using `#{cmd_name}` found at #{cmd_path} which is not within the specified ANDROID_HOME at #{android_home}"
  end
end
warn_missing_aapt(android_home) click to toggle source
# File lib/screengrab/dependency_checker.rb, line 40
def self.warn_missing_aapt(android_home)
  if android_home
    UI.important "The `aapt` command could not be found relative to your provided ANDROID_HOME at #{android_home}"
    UI.important "Please ensure that the Android SDK is installed and you have the build tools downloaded"
  else
    UI.important "The `aapt` command could not be found on your PATH"
    UI.important "Please ensure that the Android SDK is installed and you have the build tools downloaded and present on your PATH"
  end
end