bootic_cli 0.7.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bootic_cli/themes/api_theme.rb +23 -3
- data/lib/bootic_cli/themes/fs_theme.rb +3 -2
- data/lib/bootic_cli/themes/workflows.rb +13 -7
- data/lib/bootic_cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66ebab01b114029b6d6cff68f2957df471694fbe
|
4
|
+
data.tar.gz: f593e3f37ed9dd3cd7ec48730afd8509f4e6f480
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13d97b88ee377d64743699dd420349601cecc0c7b3a94380c9771dc553094044ea33764164e85eb5e44a4e6983ba510f897047ea266e03fd0f55ab001293b0f4
|
7
|
+
data.tar.gz: 28b87bf9559eca1c3271ad74d37e2ea7f3c385d509d5ef34a677100d5edc345e5bb8ad424f6b390b6dceeb1da333b34044b49bf53cc397a5bd3727041202473c
|
@@ -10,7 +10,7 @@ module BooticCli
|
|
10
10
|
|
11
11
|
def ==(other)
|
12
12
|
# puts "Comparing with time #{self.updated_on} vs #{other.updated_on}"
|
13
|
-
self.updated_on == other.updated_on
|
13
|
+
self.updated_on.to_i == other.updated_on.to_i
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -116,10 +116,18 @@ module BooticCli
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def add_template(file_name, body)
|
119
|
-
|
119
|
+
params = {
|
120
120
|
file_name: file_name,
|
121
121
|
body: body
|
122
|
-
|
122
|
+
}
|
123
|
+
|
124
|
+
if ts = get_updated_on(file_name)
|
125
|
+
params.merge!(last_updated_on: ts.to_i)
|
126
|
+
end
|
127
|
+
|
128
|
+
check_errors!(theme.create_template(params)).tap do |entity|
|
129
|
+
template_updated(file_name, entity)
|
130
|
+
end
|
123
131
|
end
|
124
132
|
|
125
133
|
def remove_template(file_name)
|
@@ -152,6 +160,18 @@ module BooticCli
|
|
152
160
|
private
|
153
161
|
attr_reader :theme
|
154
162
|
|
163
|
+
def get_updated_on(file_name)
|
164
|
+
if tpl = templates.find { |t| t.file_name == file_name }
|
165
|
+
tpl.updated_on
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
def template_updated(file_name, new_template)
|
170
|
+
if index = templates.index { |t| t.file_name == file_name }
|
171
|
+
templates[index] = ItemWithTime.new(new_template)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
155
175
|
def check_errors!(entity)
|
156
176
|
if entity.has?(:errors)
|
157
177
|
raise EntityErrors.new(entity.errors)
|
@@ -8,7 +8,7 @@ module BooticCli
|
|
8
8
|
|
9
9
|
Template = Struct.new(:file_name, :body, :updated_on) do
|
10
10
|
def ==(other)
|
11
|
-
self.updated_on == other.updated_on
|
11
|
+
self.updated_on.to_i == other.updated_on.to_i
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -20,10 +20,11 @@ module BooticCli
|
|
20
20
|
def ==(other)
|
21
21
|
if other.digest.to_s == '' # api theme asset without a digest set
|
22
22
|
# puts "Other has no digest, so comparing dates: #{self.updated_on} vs #{other.updated_on}"
|
23
|
-
return self.updated_on == other.updated_on
|
23
|
+
return self.updated_on.to_i == other.updated_on.to_i
|
24
24
|
end
|
25
25
|
|
26
26
|
# file sizes may differ as they are served by CDN (that shrinks them)
|
27
|
+
# puts "Comparing digests:\n#{digest}\n#{other.digest}"
|
27
28
|
self.digest == other.digest # self.file_size == other.file_size
|
28
29
|
end
|
29
30
|
end
|
@@ -324,7 +324,7 @@ module BooticCli
|
|
324
324
|
def upsert_file(theme, path)
|
325
325
|
return if File.basename(path)[0] == '.' # filter out .lock and .state
|
326
326
|
item, type = FSTheme.resolve_file(path)
|
327
|
-
handle_file_errors(type, item) do
|
327
|
+
success = handle_file_errors(type, item) do
|
328
328
|
case type
|
329
329
|
when :template
|
330
330
|
theme.add_template(item.file_name, item.body)
|
@@ -332,7 +332,7 @@ module BooticCli
|
|
332
332
|
theme.add_asset(item.file_name, item.file)
|
333
333
|
end
|
334
334
|
end
|
335
|
-
puts "Uploaded #{type}: #{highlight(item.file_name)}"
|
335
|
+
puts "Uploaded #{type}: #{highlight(item.file_name)}" if success
|
336
336
|
end
|
337
337
|
|
338
338
|
def delete_file(theme, path)
|
@@ -352,15 +352,21 @@ module BooticCli
|
|
352
352
|
def handle_file_errors(type, file, &block)
|
353
353
|
begin
|
354
354
|
yield
|
355
|
+
true
|
355
356
|
rescue APITheme::EntityErrors => e
|
356
357
|
fields = e.errors.map(&:field)
|
357
358
|
|
358
|
-
|
359
|
+
if fields.include?('$.updated_on') || fields.include?('updated_on')
|
360
|
+
prompt.say("#{file.file_name} timestamp #{e.errors.first.messages.first}", :red)
|
361
|
+
abort
|
362
|
+
end
|
363
|
+
|
364
|
+
error_msg = if fields.include?('file_content_type') or fields.include?('content_type')
|
359
365
|
"is an unsupported file type for #{type}s."
|
360
|
-
elsif fields.include?(
|
366
|
+
elsif fields.include?('file_file_size') # big asset
|
361
367
|
size_str = file.file_size.to_i > 0 ? "(#{file.file_size} KB) " : ''
|
362
368
|
"#{size_str}is heavier than the maximum allowed for assets (1 MB)"
|
363
|
-
elsif fields.include?(
|
369
|
+
elsif fields.include?('body') # big template
|
364
370
|
str = file.file_name[/\.(html|liquid)$/] ? "Try splitting it into smaller chunks" : "Try saving it as an asset instead"
|
365
371
|
str += ", since templates can hold up to 64 KB of data."
|
366
372
|
else
|
@@ -368,11 +374,11 @@ module BooticCli
|
|
368
374
|
end
|
369
375
|
|
370
376
|
prompt.say("#{file.file_name} #{error_msg}. Skipping...", :red)
|
371
|
-
# abort
|
377
|
+
false # abort
|
372
378
|
|
373
379
|
rescue JSON::GeneratorError => e
|
374
380
|
prompt.say("#{file.file_name} looks like a binary file, not a template. Skipping...", :red)
|
375
|
-
# abort
|
381
|
+
false # just continue, don't abort
|
376
382
|
|
377
383
|
rescue Net::OpenTimeout, Net::ReadTimeout => e
|
378
384
|
prompt.say("I'm having trouble connecting to the server. Please try again in a minute.", :red)
|
data/lib/bootic_cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootic_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ismael Celis
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-03-
|
12
|
+
date: 2020-03-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|