fastlane-plugin-android_emulator 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c342be284340d90d3080c8548d3eeeeabb7d0c36f59029f2e8e8e9e762a64dca
4
- data.tar.gz: 67f0593397dbe0179bbee05734668e3bc1ca38ffd9da6ed1780608c127f93e55
3
+ metadata.gz: beb865e27d0b2be0c355ddba749cc7097993f89bfae2804f6c99151eed0f013c
4
+ data.tar.gz: 9ec7938d8ccc8846b5b3404412105207c772d03151082286e3a82a7f6ab2f182
5
5
  SHA512:
6
- metadata.gz: 25a713f0b52b55c5b78342cd3f977b68874e29239c5f6b2686abb9268d353241b3637b6b5e5be254424be7cd7b7556b2d34668f7a0c8168c5c46324aa4656796
7
- data.tar.gz: 7385cc4e351984156f4f14f98b0e899f9a255345c56605f73e65d10260120e0ee911cc0124a1bb0a0242c35c182a9b4915a86c08f41034394679da40e144da4c
6
+ metadata.gz: ca1b197134b7bea5b817bc47678099579d4d1eb63a7aeb559cacf3546dbdb6d66029c9f0ff474ddbc363b9f50833812408d3eeb36a08be8076cfcd59df179805
7
+ data.tar.gz: 376f98f5022bc8e3194f8a6be1064dc3f100def542cc99e94f0521f0fe7788ded3ba0653e3d30e28faa3ae361893a70d4f2d77634cc45c048e1402998bb05246
data/README.md CHANGED
@@ -16,12 +16,12 @@ Creates and starts a new Android Emulator (AVD)
16
16
 
17
17
  With additional features:
18
18
 
19
- * set location
20
- * set demo-mode (great for Screengrab 😀)
19
+ - set location
20
+ - set demo-mode (great for Screengrab 😀)
21
21
 
22
22
  ## Example
23
23
 
24
- **Available Options:** sdk_dir, package, name, device, port, location, demo_mode, cold_boot
24
+ **Available Options:** sdk_dir, package, name, device, port, location, demo_mode, cold_boot, additional_options
25
25
 
26
26
  ```ruby
27
27
  android_emulator(
@@ -30,12 +30,14 @@ android_emulator(
30
30
  demo_mode: true,
31
31
  sdk_dir: "PATH_TO_SDK",
32
32
  device: "Nexus 5",
33
- cold_boot: false
33
+ cold_boot: false,
34
+ additional_options: [
35
+ "key=value"
36
+ ]
34
37
  )
35
38
  ```
36
39
 
37
- Or you can use it with our [Android SDK Update Plugin](https://github.com/NovaTecConsulting/fastlane-plugin-android_sdk_update)
38
-
40
+ Or you can use it with our [Android SDK Update Plugin](https://github.com/NovaTecConsulting/fastlane-plugin-android_sdk_update)
39
41
 
40
42
  ```ruby
41
43
  ENV["AVD_PACKAGE"] = "system-images;android-24;google_apis;x86_64"
@@ -62,6 +64,7 @@ rake
62
64
  ```
63
65
 
64
66
  To automatically fix many of the styling issues, use
67
+
65
68
  ```
66
69
  rubocop -a
67
70
  ```
@@ -4,9 +4,13 @@ require_relative '../helper/android_emulator_helper'
4
4
  module Fastlane
5
5
  module Actions
6
6
  class AndroidEmulatorAction < Action
7
- def self.avd_active(params)
7
+ def self.avd_active(params, config_file)
8
8
  image = params[:package].gsub(";", "/")
9
- return File.readlines("#{Dir.home}/.android/avd/#{params[:name]}.avd/config.ini").grep(/#{image}/).size > 0
9
+ if File.exist?(config_file)
10
+ return File.readlines(config_file).grep(/#{image}/).size > 0
11
+ else
12
+ return false
13
+ end
10
14
  end
11
15
 
12
16
  def self.run(params)
@@ -18,21 +22,41 @@ module Fastlane
18
22
  system("#{adb} emu kill > /dev/null 2>&1 &")
19
23
  sleep(3)
20
24
 
21
- if !avd_active(params) || params[:cold_boot]
25
+ config_file = "#{Dir.home}/.android/avd/#{params[:name]}.avd/config.ini"
26
+
27
+ if !avd_active(params, config_file) || params[:cold_boot]
22
28
  UI.message("Creating new emulator")
23
29
  FastlaneCore::CommandExecutor.execute(
24
- command: "#{sdk_dir}/tools/bin/avdmanager create avd -n '#{params[:name]}' -f -k '#{params[:package]}' -d '#{params[:device]}'",
30
+ command: "#{sdk_dir}/cmdline-tools/latest/bin/avdmanager create avd -n '#{params[:name]}' -f -k '#{params[:package]}' -d '#{params[:device]}'",
25
31
  print_all: true,
26
- print_command: false
32
+ print_command: true
27
33
  )
28
34
 
35
+ configuration = {}
36
+ File.readlines(config_file).each do |definition|
37
+ key, value = definition.split("=")
38
+ configuration[key.strip] = value.strip
39
+ end
40
+
29
41
  UI.message("Override configuration")
30
- open("#{Dir.home}/.android/avd/#{params[:name]}.avd/config.ini", 'a') { |f|
31
- f << "hw.gpu.mode=auto\n"
32
- f << "hw.gpu.enabled=yes\n"
33
- f << "skin.dynamic=yes\n"
34
- f << "skin.name=1080x1920\n"
42
+ additional = {
43
+ "hw.gpu.mode" => "auto",
44
+ "hw.gpu.enabled" => "yes",
45
+ "skin.dynamic" => "yes",
46
+ "skin.name" => "1080x1920"
35
47
  }
48
+
49
+ if params[:additional_options]
50
+ params[:additional_options].each do |option|
51
+ key, value = option.split("=")
52
+ additional[key.strip] = value.strip
53
+ end
54
+ end
55
+
56
+ configuration = configuration.merge(additional)
57
+ open(config_file, 'w') do |f|
58
+ configuration.each { |key, value| f << "#{key.strip}=#{value.strip}\n" }
59
+ end
36
60
  end
37
61
 
38
62
  # Verify HAXM installed on mac
@@ -46,7 +70,7 @@ module Fastlane
46
70
  system("LC_NUMERIC=C; #{sdk_dir}/emulator/emulator @#{params[:name]} -port #{port} > /dev/null 2>&1 &")
47
71
  sh("#{adb} -e wait-for-device")
48
72
 
49
- until Actions.sh("#{adb} -e shell getprop dev.bootcomplete", log: false).strip == "1" do
73
+ until Actions.sh("#{adb} -e shell getprop dev.bootcomplete", log: false).strip == "1"
50
74
  sleep(5)
51
75
  end
52
76
 
@@ -78,7 +102,8 @@ module Fastlane
78
102
  location: "9.1808 48.7771",
79
103
  package: "system-images;android-24;google_apis;x86_64",
80
104
  demo_mode: true,
81
- sdk_dir: "PATH_TO_SDK"
105
+ sdk_dir: "PATH_TO_SDK",
106
+ additional_options: []
82
107
  )'
83
108
  ]
84
109
  end
@@ -114,7 +139,7 @@ module Fastlane
114
139
  optional: false),
115
140
  FastlaneCore::ConfigItem.new(key: :location,
116
141
  env_name: "AVD_LOCATION",
117
- description: "Set location of the the emulator '<longitude> <latitude>'",
142
+ description: "Set location of the emulator '<longitude> <latitude>'",
118
143
  optional: true),
119
144
  FastlaneCore::ConfigItem.new(key: :demo_mode,
120
145
  env_name: "AVD_DEMO_MODE",
@@ -125,7 +150,14 @@ module Fastlane
125
150
  env_name: "AVD_COLD_BOOT",
126
151
  description: "Create a new AVD every run",
127
152
  is_string: false,
128
- default_value: false)
153
+ default_value: false),
154
+ FastlaneCore::ConfigItem.new(key: :additional_options,
155
+ env_name: "AVD_ADDITIONAL_OPTIONS",
156
+ description: "Set additional options of the emulation",
157
+ type: Array,
158
+ is_string: false,
159
+ optional: true)
160
+
129
161
  ]
130
162
  end
131
163
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module AndroidEmulator
3
- VERSION = "1.2.0"
3
+ VERSION = "1.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-android_emulator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Ruhl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-05 00:00:00.000000000 Z
11
+ date: 2022-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry