roku_builder 4.22.6 → 4.23.0

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: 90140ab7e4b496a8d416fe3f97528c7c703e3b2454c96d76b04ef5bca00b79d3
4
- data.tar.gz: adbbbc91a49e66cf79bb1cccffb92d90429c4cfc70e64d0bbf498563af955280
3
+ metadata.gz: 373790650070231c745746cd44c6ad316f34746e27fd73a4849b2d02279df624
4
+ data.tar.gz: de065657de7cf806f4db60a01230eef93d1f92aba581c5456752367e01554900
5
5
  SHA512:
6
- metadata.gz: 33237bd2989eae2fd3c6c7130f1c5ccca17761c03e60bf1144038531559807e0e2fd3f40acbd5a56493350e2f2b527cbee7adccba3ce72faee30f595ec1b1dda
7
- data.tar.gz: ace218a8fb325fb3684bcce31890147ee1104576c7c1d8198392157311aeb6b9c2fbe8e957fd70af9a85d041643a0f32b65f92d28642ed2567628fe7d1282d0c
6
+ metadata.gz: 16a02701b5eaed8f0f6dbee5edd0c42d3f26481139384aac9ecc545c96695259d0c4509274b3543cf5fd137c55f9ae19e27dda9f21a0813a725f6d1e0ae870ce
7
+ data.tar.gz: 01fbc2cd1d4bf08f4ee2f8a8fed846300d0a6629b54cb6a45484af7b4ff0388dde3ebfc84ac7d940bed5697700c5be690bc7491c10fcc366a374c59a8caaf75f
@@ -126,7 +126,12 @@ module RokuBuilder
126
126
  if File.exist?(local_config_path) and !@loaded_configs.include?(File.expand_path(local_config_path))
127
127
  local_config_hash = read_config(File.open(local_config_path))
128
128
  add_missing_directories(local_config_hash)
129
+ local_sub_configs = "./.roku_config/*.json"
129
130
  @config = @config.deep_merge(local_config_hash)
131
+ Dir.glob("./.roku_config/*.json").each do |sub_config_path|
132
+ sub_config_hash = read_config(File.open(sub_config_path))
133
+ @config = @config.deep_merge(sub_config_hash)
134
+ end
130
135
  end
131
136
  end
132
137
 
@@ -65,11 +65,13 @@ module RokuBuilder
65
65
  def run_sca_tool(path:, ssai:)
66
66
  if OS.unix?
67
67
  command = File.join(File.dirname(__FILE__), "sca-cmd", "bin", "sca-cmd")
68
+ stderr = "/dev/null"
68
69
  else
69
70
  command = File.join(File.dirname(__FILE__), "sca-cmd", "bin", "sca-cmd.bat")
71
+ stderr = "nul"
70
72
  end
71
73
  @logger.debug("Command: '#{command}'")
72
- results = `#{command} #{path}`.split("\n")
74
+ results = `#{command} #{path} 2>#{stderr}`.split("\n")
73
75
  process_sca_results(results, ssai)
74
76
  end
75
77
 
@@ -96,6 +98,11 @@ module RokuBuilder
96
98
  if ssai and /SetAdUrl\(\) method is missing/.match(@sca_warning[:message])
97
99
  return false
98
100
  end
101
+ libraries = @config.project[:libraries]
102
+ libraries ||= []
103
+ if @sca_warning[:path] and libraries.any_is_start?(@sca_warning[:path].gsub(/pkg:/, "")) and not @options[:include_libraries]
104
+ return false
105
+ end
99
106
  return true
100
107
  end
101
108
  return false
@@ -75,8 +75,9 @@ module RokuBuilder
75
75
  parser.on("--debug", "Print Debug messages") do
76
76
  options[:debug] = true
77
77
  end
78
- parser.on("-h", "--help", "Show this message") do
79
- puts parser
78
+ parser.on("-h", "--help [PLUGIN]", "Show help") do |h|
79
+ help_text = self.get_help_text(parser: parser, options: options, plugin_name: h)
80
+ puts help_text
80
81
  exit
81
82
  end
82
83
  parser.on("-v", "--version", "Show version") do
@@ -112,6 +113,30 @@ module RokuBuilder
112
113
  def dounstage(options:)
113
114
  Stager.new(config: @config, options: options).unstage
114
115
  end
116
+
117
+ def self.get_help_text(parser:, options:, plugin_name:)
118
+ plugin = self.get_plugin_by_name(plugin_name)
119
+ if nil == plugin
120
+ return parser.to_s
121
+ else
122
+ pluginParser = OptionParser.new
123
+ pluginParser.separator ""
124
+ pluginParser.separator "Options for #{plugin}:"
125
+ plugin.parse_options(parser: pluginParser, options: options)
126
+ return pluginParser.to_s
127
+ end
128
+ end
129
+
130
+ def self.get_plugin_by_name(name)
131
+ if name.nil?
132
+ return nil
133
+ end
134
+ pluginIndex = RokuBuilder.plugins.map{|pluginClass| pluginClass.name.split('::').last().downcase}.index(name.downcase)
135
+ if !pluginIndex.nil?
136
+ plugin = RokuBuilder.plugins[pluginIndex]
137
+ return plugin
138
+ end
139
+ end
115
140
  end
116
141
  RokuBuilder.register_plugin(Core)
117
142
  end
@@ -55,6 +55,8 @@ module RokuBuilder
55
55
  end
56
56
  elsif @prev_line =~ /^\s*\bfor\b|^\s*\bwhile\b/i
57
57
  @ind += @count
58
+ elsif @prev_line =~ /^\s*\btry\b|^\s*\bcatch\b/i
59
+ @ind += @count
58
60
  end
59
61
  end
60
62
  if line =~ /^\'/ or line =~ /\'indent-ignore/
@@ -62,11 +64,13 @@ module RokuBuilder
62
64
  elsif line =~ /^\s*[\}\]\)]/
63
65
  @ind -= @count
64
66
  elsif line =~ /^\s*\bfunction\b|^\s*\bsub\b/i
65
- @ind -= 0
67
+ # Don't change indentation
66
68
  elsif line =~ /^\s*:?\s*#?end\b|^\s*#?endif\b|^\s*endfor\b|^\s*\bnext\b/i
67
69
  @ind -= @count
68
70
  elsif line =~ /^\s*#?else\b|^\s*elseif\b/i
69
71
  @ind -= @count
72
+ elsif line =~ /^\s*#?catch\b/i
73
+ @ind -= @count
70
74
  end
71
75
  end
72
76
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module RokuBuilder
4
4
  # Version of the RokuBuilder Gem
5
- VERSION = "4.22.6"
5
+ VERSION = "4.23.0"
6
6
  end
@@ -108,6 +108,25 @@ module RokuBuilder
108
108
  core.dounstage(options: options)
109
109
  end
110
110
  end
111
+ def test_core_help
112
+ parser = OptionParser.new
113
+ options = {}
114
+ help_text = Core.get_help_text(parser: parser, options: options, plugin_name: nil)
115
+ assert help_text
116
+ end
117
+ def test_core_help_plugin
118
+ parser = OptionParser.new
119
+ options = {}
120
+ help_text = Core.get_help_text(parser: parser, options: options, plugin_name: "Loader")
121
+ assert help_text
122
+ end
123
+ def test_core_get_plugin_by_name
124
+ parser = OptionParser.new
125
+ options = {}
126
+ plugin_name = Core.get_plugin_by_name("core")
127
+ refute_nil plugin_name
128
+ assert_match "RokuBuilder::Core", plugin_name.to_s
129
+ end
111
130
  end
112
131
  end
113
132
 
@@ -163,6 +163,37 @@ module RokuBuilder
163
163
  assert_equal `pwd`.chomp, config.raw[:projects][:p2][:directory]
164
164
  end
165
165
 
166
+ def test_config_read_local_sub_config
167
+ options = build_options({config: File.join(test_files_path(ConfigTest), "config.json"), validate: true})
168
+ config = Config.new(options: options)
169
+
170
+ mock = Minitest::Mock.new
171
+ io = proc { |path|
172
+ if path == './.roku_config.json' or path == "keys.json"
173
+ mock
174
+ else
175
+ IO.new(IO.sysopen(path))
176
+ end
177
+ }
178
+ local_config_content = IO.read(File.join(test_files_path(ConfigTest), "local.json"))
179
+ mock.expect(:read, local_config_content)
180
+ local_sub_config_content = IO.read(File.join(test_files_path(ConfigTest), "local_sub.json"))
181
+ mock.expect(:read, local_sub_config_content)
182
+
183
+ File.stub(:exist?, true) do
184
+ File.stub(:open, io) do
185
+ Dir.stub(:glob, ["keys.json"]) do
186
+ config.load
187
+ end
188
+ end
189
+ end
190
+
191
+ mock.verify
192
+ refute_nil config.raw[:keys]
193
+ refute_nil config.raw[:keys][:test_key]
194
+ assert_equal "password", config.raw[:keys][:test_key][:password]
195
+ end
196
+
166
197
  def test_config_edit
167
198
  orginal = File.join(test_files_path(ConfigTest), "config.json")
168
199
  tmp = File.join(test_files_path(ConfigTest), "tmpconfig.json")
@@ -23,6 +23,10 @@ sub main(externalParams)
23
23
  scene.observeField("exitApplication", port)
24
24
  scene.observeField("sessionLength", port)
25
25
 
26
+ scene.signalBeacon("AppLaunchComplete")
27
+ scene.signalBeacon("AppDialogInitiate")
28
+ scene.signalBeacon("AppDialogComplete")
29
+
26
30
  while(true)
27
31
  msg = wait(0, port)
28
32
  msgType = type(msg)
@@ -0,0 +1,8 @@
1
+ {
2
+ "keys": {
3
+ "test_key": {
4
+ "keyed_pkg": "/key/path",
5
+ "password": "password"
6
+ }
7
+ }
8
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roku_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.22.6
4
+ version: 4.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - greeneca
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-14 00:00:00.000000000 Z
11
+ date: 2021-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -557,6 +557,7 @@ files:
557
557
  - test/roku_builder/test_files/config_test/child.json
558
558
  - test/roku_builder/test_files/config_test/config.json
559
559
  - test/roku_builder/test_files/config_test/local.json
560
+ - test/roku_builder/test_files/config_test/local_sub.json
560
561
  - test/roku_builder/test_files/config_test/multi_repeat_stages.json
561
562
  - test/roku_builder/test_files/config_test/no_default_device.json
562
563
  - test/roku_builder/test_files/config_test/no_default_project.json
@@ -684,6 +685,7 @@ test_files:
684
685
  - test/roku_builder/test_files/config_test/child.json
685
686
  - test/roku_builder/test_files/config_test/config.json
686
687
  - test/roku_builder/test_files/config_test/local.json
688
+ - test/roku_builder/test_files/config_test/local_sub.json
687
689
  - test/roku_builder/test_files/config_test/multi_repeat_stages.json
688
690
  - test/roku_builder/test_files/config_test/no_default_device.json
689
691
  - test/roku_builder/test_files/config_test/no_default_project.json