Class: Fastlane::Helper::CordovaScreenshotsHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb

Constant Summary collapse

HELPER_PATH =
File.expand_path(File.dirname(__FILE__))

Class Method Summary collapse

Class Method Details

.copy_all_files(src_folder, project_folder) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 8

def self.copy_all_files(src_folder, project_folder)
  if src_folder && Dir.exist?(src_folder)
    dest_folder = project_folder.to_s
    UI.message("Copying all files from '#{src_folder}' to '#{dest_folder}'")
    Dir.exist?(dest_folder) || FileUtils.mkdir_p(dest_folder)
    FileUtils.cp_r(src_folder + "/.", dest_folder)
  elsif
    UI.user_error!("Copying files: '#{src_folder}' does not exist.")
  end
end

.copy_android_build_extras_gradleObject

copy over build-extras.gradle to ‘platformsandroidapp`



61
62
63
64
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 61

def self.copy_android_build_extras_gradle
  android_resources_path = File.expand_path("#{HELPER_PATH}/../resources/android")
  FileUtils.cp("#{android_resources_path}/build-extras.gradle", "platforms/android/app")
end

.copy_android_manifest(package_name) ⇒ Object

copy over AndroidManifest.xml to ‘platformsandroidappsrcdebug`



67
68
69
70
71
72
73
74
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 67

def self.copy_android_manifest(package_name)
  android_resources_path = File.expand_path("#{HELPER_PATH}/../resources/android")
  dest_path = "platforms/android/app/src/debug"
  filename = "AndroidManifest.xml"
  Dir.exist?(dest_path) || FileUtils.mkdir_p(dest_path)
  FileUtils.cp("#{android_resources_path}/#{filename}", dest_path)
  replace_package_name("#{dest_path}/#{filename}", package_name)
end

.copy_android_sample_test(package_name) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 34

def self.copy_android_sample_test(package_name)
  android_resources_path = File.expand_path("#{HELPER_PATH}/../resources/android")
  Dir.exist?(CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH) || FileUtils.mkdir_p(CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH)
  # TODO: Don't overwrite existing files!
  filename = "ScreengrabTest.java"
  FileUtils.cp("#{android_resources_path}/#{filename}", CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH.to_s)
  replace_package_name("#{CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH}/#{filename}", package_name)
end

.copy_android_test(package_name_path) ⇒ Object

copy over test file to ‘platformsandroidappsrcandroidTestjava...ScreengrabTest.java` (… = ioionicstarter)



53
54
55
56
57
58
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 53

def self.copy_android_test(package_name_path)
  test_path = "platforms/android/app/src/androidTest/java/#{package_name_path}"
  Dir.exist?(test_path) || FileUtils.mkdir_p(test_path)
  # TODO: Handle missing ScreengrabTest.java file and suggest using other action
  FileUtils.cp("#{CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH}/ScreengrabTest.java", test_path)
end

.copy_ios_sample_tests(scheme_name) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 19

def self.copy_ios_sample_tests(scheme_name)
  ios_resources_path = File.expand_path("#{HELPER_PATH}/../resources/ios")
  source_folder = "#{ios_resources_path}/#{CordovaScreenshots::CORDOVA_SCREENSHOTS_DEFAULT_IOS_UNIT_TEST_NAME}"
  dest_folder = "#{CordovaScreenshots::CORDOVA_SCREENSHOTS_IOS_CONFIG_PATH}/#{scheme_name}"
  # TODO: Don't overwrite existing files
  copy_all_files(source_folder, dest_folder)
end

.find_default_ios_xcode_workspaceObject

Find any existing Xcode Workspace generated by Cordova/Ionic



30
31
32
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 30

def self.find_default_ios_xcode_workspace
  Dir["#{CordovaScreenshots::CORDOVA_SCREENSHOTS_IOS_BUILD_PATH}/*.xcodeproj"].last || nil
end

.read_package_name_from_android_testObject

Read package name from test file



44
45
46
47
48
49
50
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 44

def self.read_package_name_from_android_test()
  text = File.read("#{CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH}/ScreengrabTest.java")
  # TODO: Error message if file is missing
  match = text.match(/package (.*)?;/)
  match[1]
  # TODO: Error message if package name can not be read
end

.replace_package_name(file, package_name) ⇒ Object



76
77
78
79
80
81
82
# File 'lib/fastlane/plugin/cordova_screenshots/helper/cordova_screenshots_helper.rb', line 76

def self.replace_package_name(file, package_name)
  data = File.read(file)
  filtered_data = data.gsub("tools.fastlane.plugin.cordova_screenshots", package_name)
  File.open(file, "w") do |f|
    f.write(filtered_data)
  end
end