Class: Screengrab::DependencyChecker
- Inherits:
-
Object
- Object
- Screengrab::DependencyChecker
- Defined in:
- screengrab/lib/screengrab/dependency_checker.rb
Class Method Summary collapse
- .check(android_env) ⇒ Object
- .check_aapt(android_env) ⇒ Object
- .check_adb(android_env) ⇒ Object
- .raise_missing_adb(android_home) ⇒ Object
- .warn_if_command_path_not_relative_to_android_home(cmd_name, android_home, cmd_path) ⇒ Object
- .warn_missing_aapt(android_home) ⇒ Object
Class Method Details
.check(android_env) ⇒ Object
5 6 7 8 9 10 |
# File 'screengrab/lib/screengrab/dependency_checker.rb', line 5 def self.check(android_env) return if Helper.test? check_adb(android_env) check_aapt(android_env) end |
.check_aapt(android_env) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'screengrab/lib/screengrab/dependency_checker.rb', line 33 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) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'screengrab/lib/screengrab/dependency_checker.rb', line 12 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) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'screengrab/lib/screengrab/dependency_checker.rb', line 21 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) ⇒ Object
52 53 54 55 56 |
# File 'screengrab/lib/screengrab/dependency_checker.rb', line 52 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) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'screengrab/lib/screengrab/dependency_checker.rb', line 42 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 |