roku_builder 3.12.6 → 3.12.7

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
  SHA1:
3
- metadata.gz: 7ef20c9d8920488e1f6102fbab02b28ccbb80673
4
- data.tar.gz: cd1b32fbf7fb6ab5fdd115c7668011018e0f57e7
3
+ metadata.gz: 9176b4d991a50edd2f0e9011fd487052eccb9897
4
+ data.tar.gz: 46e51f45694d978e9f39f6a6772cb81580eaddfa
5
5
  SHA512:
6
- metadata.gz: 64bc408f43e49d29d271f6dc4a6d5caf455a2a66e6e14616cc1b2ee374df10bcfc31236a2a8d9baf854e9728c753a3f2255fb5916717cc21234f70c5436c4e3f
7
- data.tar.gz: fa56cde1eaf03aa4908c8ff240f149847176a026dbe97ad556c563a354e67e3486f3e791ea1cc9c1fe4b5f1cca0aada1ac315d0ddddbd11ef925d1482499f86f
6
+ metadata.gz: 83dae8e4eefc66c8a74b7d9c1cbc7ea4bff311c1933d690f1374ec197ddcf5d116ebe2e97a6d9f0fb8528a31ada834fd329abe127ed6731fce2a177c64a16646
7
+ data.tar.gz: 855e6e1ff0cf89a8f962f513828209425e5aa270928611f1f0a999dccfb68dcbd09a379b0f6b791b4d956f0ad1a94d730570a5deadee41aa7cbc186e7b49f80b
data/CHANGELOG CHANGED
@@ -1,3 +1,10 @@
1
+ = 3.12.6 =
2
+
3
+ - Update dependancies
4
+ - Allow no projects in config
5
+ - Fix in file handeling
6
+ - Update config
7
+
1
8
  = 3.12.5 =
2
9
 
3
10
  - Fix issue with inspector
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- roku_builder (3.12.6)
4
+ roku_builder (3.12.7)
5
5
  faraday (~> 0.11)
6
6
  faraday-digestauth (~> 0.2)
7
7
  git (~> 1.3)
@@ -15,11 +15,11 @@ GEM
15
15
  specs:
16
16
  byebug (9.0.6)
17
17
  coderay (1.1.1)
18
- coveralls (0.8.19)
18
+ coveralls (0.8.20)
19
19
  json (>= 1.8, < 3)
20
- simplecov (~> 0.12.0)
20
+ simplecov (~> 0.14.1)
21
21
  term-ansicolor (~> 1.3)
22
- thor (~> 0.19.1)
22
+ thor (~> 0.19.4)
23
23
  tins (~> 1.6)
24
24
  docile (1.1.5)
25
25
  faraday (0.11.0)
@@ -80,13 +80,13 @@ GEM
80
80
  ruby_dep (1.5.0)
81
81
  rubyzip (1.2.1)
82
82
  shellany (0.0.1)
83
- simplecov (0.12.0)
83
+ simplecov (0.14.1)
84
84
  docile (~> 1.1.0)
85
85
  json (>= 1.8, < 3)
86
86
  simplecov-html (~> 0.10.0)
87
87
  simplecov-html (0.10.0)
88
88
  slop (3.6.0)
89
- term-ansicolor (1.4.0)
89
+ term-ansicolor (1.5.0)
90
90
  tins (~> 1.0)
91
91
  thor (0.19.4)
92
92
  tins (1.13.2)
data/lib/roku_builder.rb CHANGED
@@ -127,6 +127,12 @@ module RokuBuilder
127
127
  # Missing out folder
128
128
  MISSING_OUT_FOLDER = 8
129
129
 
130
+ # Bad Project Directory
131
+ BAD_PROJECT_DIR = 9
132
+
133
+ # Bad Key File
134
+ BAD_KEY_FILE = 10
135
+
130
136
 
131
137
  ### Execute Codes ###
132
138
 
@@ -14,10 +14,10 @@ module RokuBuilder
14
14
  # @return [Hash] Intermeidate configs
15
15
  def self.parse_config(options:, config:, logger:)
16
16
  configs = {init_params: {}}
17
+ #expand in
18
+ options[:in] = File.expand_path(options[:in]) if options[:in]
17
19
  #set device
18
- unless options[:device]
19
- options[:device] = config[:devices][:default]
20
- end
20
+ options[:device] = config[:devices][:default] unless options[:device]
21
21
  #set project
22
22
  setup_project(config: config, options: options) if project_required(options: options)
23
23
  #set outfile
@@ -32,7 +32,8 @@ module RokuBuilder
32
32
  stage = setup_stage_config(configs: configs, options: options, logger: logger)[1]
33
33
  return [UNKNOWN_STAGE, nil, nil] if stage.nil? and project_required(options: options)
34
34
  setup_sideload_config(configs: configs, options: options)
35
- setup_package_config(config: config, configs: configs, options: options, stage: stage)
35
+ code = setup_package_config(config: config, configs: configs, options: options, stage: stage)
36
+ return [code, nil, nil] unless code == SUCCESS
36
37
  setup_active_configs(config: config, configs: configs, options: options)
37
38
  setup_manifest_configs(configs: configs, options: options)
38
39
  setup_simple_configs(config: config, configs: configs, options: options)
@@ -116,6 +117,7 @@ module RokuBuilder
116
117
  if config[:projects][:project_dir]
117
118
  project_config[:directory] = File.join(config[:projects][:project_dir], project_config[:directory])
118
119
  end
120
+ return BAD_PROJECT_DIR unless Dir.exist?(project_config[:directory])
119
121
  project_config[:stage_method] = :working if options[:working]
120
122
  end
121
123
  project_config
@@ -207,6 +209,7 @@ module RokuBuilder
207
209
  if config[:keys][:key_dir]
208
210
  configs[:key][:keyed_pkg] = File.join(config[:keys][:key_dir], configs[:key][:keyed_pkg])
209
211
  end
212
+ return BAD_KEY_FILE unless File.exist?(configs[:key][:keyed_pkg])
210
213
  end
211
214
  end
212
215
  if options[:package]
@@ -224,6 +227,7 @@ module RokuBuilder
224
227
  configs[:inspect_config][:pkg] = File.join(configs[:out][:folder], configs[:out][:file])
225
228
  end
226
229
  end
230
+ return SUCCESS
227
231
  end
228
232
  private_class_method :setup_package_config
229
233
 
@@ -196,7 +196,7 @@ module RokuBuilder
196
196
  # List of commands requiring a source option
197
197
  # @return [Array<Symbol>] List of command symbols that require a source in the options hash
198
198
  def self.source_commands
199
- [:sideload, :package, :test, :build, :key, :update]
199
+ [:sideload, :package, :test, :build, :key, :update, :print]
200
200
  end
201
201
 
202
202
  # List of commands the activate the exclude files
@@ -72,6 +72,12 @@ module RokuBuilder
72
72
  when UNKNOWN_STAGE
73
73
  logger.fatal "Unknown stage"
74
74
  abort
75
+ when BAD_PROJECT_DIR
76
+ logger.fatal "Invalid directory for project"
77
+ abort
78
+ when BAD_KEY_FILE
79
+ logger.fatal "Invalid key path"
80
+ abort
75
81
  end
76
82
  end
77
83
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module RokuBuilder
4
4
  # Version of the RokuBuilder Gem
5
- VERSION = "3.12.6"
5
+ VERSION = "3.12.7"
6
6
  end
@@ -17,7 +17,7 @@ class ConfigParserTest < Minitest::Test
17
17
 
18
18
  assert_equal RokuBuilder::SUCCESS, code
19
19
  assert_equal Hash, config.class
20
- assert_equal "/dev/null", configs[:manifest_config][:root_dir]
20
+ assert_equal "/tmp", configs[:manifest_config][:root_dir]
21
21
  end
22
22
 
23
23
  def test_manifest_config_in
@@ -38,6 +38,24 @@ class ConfigParserTest < Minitest::Test
38
38
  assert_equal :in, configs[:stage_config][:method]
39
39
  end
40
40
 
41
+ def test_manifest_config_in_expand
42
+ logger = Logger.new("/dev/null")
43
+ options = {
44
+ config: File.expand_path(File.join(File.dirname(__FILE__), "test_files", "controller_config_test", "valid_config.json")),
45
+ in: "./infile",
46
+ update_manifest: false,
47
+ fetch: false,
48
+ sideload: true
49
+ }
50
+ config = good_config
51
+ code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
52
+
53
+ assert_equal RokuBuilder::SUCCESS, code
54
+ assert_equal Hash, config.class
55
+ assert_equal File.join(Dir.pwd, "infile"), configs[:manifest_config][:root_dir]
56
+ assert_equal :in, configs[:stage_config][:method]
57
+ end
58
+
41
59
  def test_manifest_config_current
42
60
  logger = Logger.new("/dev/null")
43
61
  options = {
@@ -76,6 +94,63 @@ class ConfigParserTest < Minitest::Test
76
94
  assert_nil project[:files]
77
95
  end
78
96
 
97
+ def test_setup_project_config_good_project_dir
98
+ config = good_config
99
+ args = {
100
+ config: config,
101
+ options: {sideload: true, project: :project1}
102
+ }
103
+ project = {}
104
+ File.stub(:exist?, true) do
105
+ project = RokuBuilder::ConfigParser.send(:setup_project_config, **args)
106
+ end
107
+ refute_equal RokuBuilder::BAD_PROJECT_DIR, project
108
+ end
109
+
110
+ def test_setup_project_config_bad_project_dir
111
+ config = good_config
112
+ config[:projects][:project1][:directory] = "/dev/null"
113
+ args = {
114
+ config: config,
115
+ options: {sideload: true, project: :project1}
116
+ }
117
+ project = {}
118
+ File.stub(:exist?, true) do
119
+ project = RokuBuilder::ConfigParser.send(:setup_project_config, **args)
120
+ end
121
+ assert_equal RokuBuilder::BAD_PROJECT_DIR, project
122
+ end
123
+
124
+ def test_setup_project_config_bad_child_project_dir
125
+ config = good_config
126
+ config[:projects][:project_dir] = "/tmp"
127
+ config[:projects][:project1][:directory] = "bad"
128
+ args = {
129
+ config: config,
130
+ options: {sideload: true, project: :project1}
131
+ }
132
+ project = {}
133
+ File.stub(:exist?, true) do
134
+ project = RokuBuilder::ConfigParser.send(:setup_project_config, **args)
135
+ end
136
+ assert_equal RokuBuilder::BAD_PROJECT_DIR, project
137
+ end
138
+
139
+ def test_setup_project_config_bad_parent_project_dir
140
+ config = good_config
141
+ config[:projects][:project_dir] = "/bad"
142
+ config[:projects][:project1][:directory] = "good"
143
+ args = {
144
+ config: config,
145
+ options: {sideload: true, project: :project1}
146
+ }
147
+ project = {}
148
+ File.stub(:exist?, true) do
149
+ project = RokuBuilder::ConfigParser.send(:setup_project_config, **args)
150
+ end
151
+ assert_equal RokuBuilder::BAD_PROJECT_DIR, project
152
+ end
153
+
79
154
  def test_setup_stage_config_script
80
155
  args = {
81
156
  configs: {project_config: {directory: "/tmp", stage_method: :script, stages: {production: {script: "script"}}}},
@@ -116,7 +191,7 @@ class ConfigParserTest < Minitest::Test
116
191
 
117
192
  assert_equal RokuBuilder::SUCCESS, code
118
193
  assert_equal Hash, config.class
119
- assert_equal "/dev/nuller", configs[:project_config][:directory]
194
+ assert_equal "/tmp", configs[:project_config][:directory]
120
195
  end
121
196
 
122
197
  def test_manifest_config_project_directory
@@ -133,7 +208,9 @@ class ConfigParserTest < Minitest::Test
133
208
  code = nil
134
209
  configs = nil
135
210
 
136
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
211
+ Dir.stub(:exist?, true) do
212
+ code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
213
+ end
137
214
 
138
215
  assert_equal RokuBuilder::SUCCESS, code
139
216
  assert_equal Hash, config.class
@@ -158,7 +235,9 @@ class ConfigParserTest < Minitest::Test
158
235
  configs = nil
159
236
 
160
237
  Pathname.stub(:pwd, Pathname.new("/tmp/project2")) do
161
- code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
238
+ Dir.stub(:exist?, true) do
239
+ code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
240
+ end
162
241
  end
163
242
 
164
243
  assert_equal RokuBuilder::SUCCESS, code
@@ -167,11 +246,12 @@ class ConfigParserTest < Minitest::Test
167
246
  end
168
247
 
169
248
  def test_manifest_config_key_directory
249
+ tmp_file = Tempfile.new("pkg")
170
250
  logger = Logger.new("/dev/null")
171
251
  options = {key: true, project: :project2}
172
252
  config = good_config
173
- config[:keys][:key_dir] = "/tmp"
174
- config[:keys][:a][:keyed_pkg] = "a"
253
+ config[:keys][:key_dir] = File.dirname(tmp_file.path)
254
+ config[:keys][:a][:keyed_pkg] = File.basename(tmp_file.path)
175
255
 
176
256
 
177
257
  code = nil
@@ -181,7 +261,40 @@ class ConfigParserTest < Minitest::Test
181
261
 
182
262
  assert_equal RokuBuilder::SUCCESS, code
183
263
  assert_equal Hash, config.class
184
- assert_equal "/tmp/a", configs[:key][:keyed_pkg]
264
+ assert_equal tmp_file.path, configs[:key][:keyed_pkg]
265
+ tmp_file.close
266
+ end
267
+
268
+ def test_manifest_config_key_directory_bad
269
+ tmp_file = Tempfile.new("pkg")
270
+ logger = Logger.new("/dev/null")
271
+ options = {key: true, project: :project2}
272
+ config = good_config
273
+ config[:keys][:key_dir] = "/bad"
274
+ config[:keys][:a][:keyed_pkg] = File.basename(tmp_file.path)
275
+
276
+ code = nil
277
+ configs = nil
278
+
279
+ code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
280
+
281
+ assert_equal RokuBuilder::BAD_KEY_FILE, code
282
+ end
283
+
284
+ def test_manifest_config_key_path_bad
285
+ tmp_file = Tempfile.new("pkg")
286
+ logger = Logger.new("/dev/null")
287
+ options = {key: true, project: :project2}
288
+ config = good_config
289
+ config[:keys][:key_dir] = File.dirname(tmp_file.path)
290
+ config[:keys][:a][:keyed_pkg] = File.basename(tmp_file.path)+".bad"
291
+
292
+ code = nil
293
+ configs = nil
294
+
295
+ code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
296
+
297
+ assert_equal RokuBuilder::BAD_KEY_FILE, code
185
298
  end
186
299
 
187
300
  def test_setup_sideload_config
@@ -36,6 +36,8 @@ class ErrorHandlerTest < Minitest::Test
36
36
  RokuBuilder::UNKNOWN_DEVICE,
37
37
  RokuBuilder::UNKNOWN_PROJECT,
38
38
  RokuBuilder::UNKNOWN_STAGE,
39
+ RokuBuilder::BAD_PROJECT_DIR,
40
+ RokuBuilder::BAD_KEY_FILE
39
41
  ],
40
42
  command_code: [
41
43
  RokuBuilder::FAILED_SIDELOAD,
@@ -10,7 +10,7 @@
10
10
  "projects": {
11
11
  "default": "p1",
12
12
  "p1": {
13
- "directory": "/dev/null",
13
+ "directory": "/dev/nuller",
14
14
  "folders": ["resources","source"],
15
15
  "files": ["manifest"],
16
16
  "app_name": "app",
@@ -18,7 +18,7 @@
18
18
  "production": {
19
19
  "branch": "master",
20
20
  "key": {
21
- "keyed_pkg": "/dev/null",
21
+ "keyed_pkg": "/tmp",
22
22
  "password": "password"
23
23
  }
24
24
  }
@@ -27,7 +27,7 @@ def good_config
27
27
  projects: {
28
28
  default: :project1,
29
29
  project1: {
30
- directory: "/dev/null",
30
+ directory: "/tmp",
31
31
  folders: ["resources","source"],
32
32
  files: ["manifest"],
33
33
  app_name: "<app name>",
@@ -36,14 +36,14 @@ def good_config
36
36
  production: {
37
37
  branch: "production",
38
38
  key: {
39
- keyed_pkg: "/dev/null",
39
+ keyed_pkg: "/tmp",
40
40
  password: "<password for pkg>"
41
41
  }
42
42
  }
43
43
  }
44
44
  },
45
45
  project2: {
46
- directory: "/dev/nuller",
46
+ directory: "/tmp",
47
47
  folders: ["resources","source"],
48
48
  files: ["manifest"],
49
49
  app_name: "<app name>",
@@ -58,7 +58,7 @@ def good_config
58
58
  },
59
59
  keys: {
60
60
  a: {
61
- keyed_pkg: "/dev/null",
61
+ keyed_pkg: "/tmp",
62
62
  password: "password"
63
63
  }
64
64
  },
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: 3.12.6
4
+ version: 3.12.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - greeneca
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-23 00:00:00.000000000 Z
11
+ date: 2017-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip