s3_website 1.6.3 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/s3_website +11 -1
- data/changelog.md +6 -0
- data/features/error_reporting.feature +17 -0
- data/lib/s3_website/diff_helper.rb +3 -3
- data/lib/s3_website/errors.rb +8 -0
- data/lib/s3_website/paths.rb +0 -3
- data/lib/s3_website/tasks.rb +0 -6
- data/s3_website.gemspec +1 -1
- data/spec/lib/error_spec.rb +21 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55cbf48ece87058d058773afa873397466a7bb46
|
4
|
+
data.tar.gz: 23e1d2f8b50bad5582a3954fff956e5d401a4855
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e23239516c9d32cf5a29bc826a5809635e17e20adfd8aa083a620e6ca9aa2ad8e8da29d467c2aeebe5732ea7516bd1f3a6024551739c85fe59ae13199fa3ad84
|
7
|
+
data.tar.gz: f6857264ecd3e9f88b92979c55d89a54800a14d2f07b325dce5871edc8eb5e6aeb4720c50d685dcdacbde379c3a3d3a76e707f2c01145e3539d5ea6ac5fe0f97
|
data/bin/s3_website
CHANGED
@@ -6,6 +6,8 @@ class Cfg < Thor
|
|
6
6
|
desc 'create', 'Create a config file with placeholder values'
|
7
7
|
def create
|
8
8
|
S3Website::Tasks.config_create Dir.pwd
|
9
|
+
rescue Exception => e
|
10
|
+
puts S3Website.error_report e
|
9
11
|
end
|
10
12
|
|
11
13
|
desc 'apply', 'Apply the configuration on the AWS services'
|
@@ -19,7 +21,13 @@ class Cfg < Thor
|
|
19
21
|
LONGDESC
|
20
22
|
def apply
|
21
23
|
puts 'Applying the configurations in s3_website.yml on the AWS services ...'
|
22
|
-
|
24
|
+
require 'configure-s3-website'
|
25
|
+
config_source = ConfigureS3Website::FileConfigSource.new 's3_website.yml'
|
26
|
+
ConfigureS3Website::Runner.run({
|
27
|
+
:config_source => config_source
|
28
|
+
})
|
29
|
+
rescue Exception => e
|
30
|
+
puts S3Website.error_report e
|
23
31
|
end
|
24
32
|
end
|
25
33
|
|
@@ -50,6 +58,8 @@ class Cli < Thor
|
|
50
58
|
def push
|
51
59
|
site_path = S3Website::Paths.infer_site_path options[:site]
|
52
60
|
S3Website::Tasks.push(options[:config_dir], site_path, options[:headless])
|
61
|
+
rescue Exception => e
|
62
|
+
puts S3Website.error_report e
|
53
63
|
end
|
54
64
|
|
55
65
|
desc 'cfg SUBCOMMAND ...ARGS', 'Operate on the config file'
|
data/changelog.md
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
Feature: reporting errors to the user
|
2
|
+
|
3
|
+
Background: we want to show a non-technical error report to the user.
|
4
|
+
Consequently, we do not print the stack trace of the error.
|
5
|
+
|
6
|
+
@starts-new-os-process
|
7
|
+
@network-io
|
8
|
+
Scenario: The S3 credentials are invalid
|
9
|
+
When I run `s3_website push --site ../../features/support/test_site_dirs/my.blog.com --config_dir ../../features/support/test_site_dirs/my.blog.com`
|
10
|
+
Then the output should contain:
|
11
|
+
"""
|
12
|
+
The AWS Access Key Id you provided does not exist in our records. (AWS::S3::Errors::InvalidAccessKeyId)
|
13
|
+
"""
|
14
|
+
And the output should not contain:
|
15
|
+
"""
|
16
|
+
throw
|
17
|
+
"""
|
@@ -47,17 +47,17 @@ module S3Website
|
|
47
47
|
@end_msg = end_msg
|
48
48
|
@ordinal_direction = 'n' # start from north
|
49
49
|
print init_msg
|
50
|
-
print '
|
50
|
+
print ' '
|
51
51
|
render_next_step
|
52
52
|
end
|
53
53
|
|
54
54
|
def render_next_step
|
55
55
|
@ordinal_direction = DiffProgressIndicator.next_ordinal_direction @ordinal_direction
|
56
|
-
print("\b" + DiffProgressIndicator.render_ordinal_direction(@ordinal_direction))
|
56
|
+
print("\b\b" + DiffProgressIndicator.render_ordinal_direction(@ordinal_direction) + ' ')
|
57
57
|
end
|
58
58
|
|
59
59
|
def finish
|
60
|
-
print "\b"
|
60
|
+
print "\b\b"
|
61
61
|
print @end_msg
|
62
62
|
end
|
63
63
|
|
data/lib/s3_website/errors.rb
CHANGED
data/lib/s3_website/paths.rb
CHANGED
data/lib/s3_website/tasks.rb
CHANGED
@@ -15,16 +15,10 @@ module S3Website
|
|
15
15
|
:invalidated_items_count => invalidated_items_count,
|
16
16
|
:changed_redirects_count => changed_redirects.size
|
17
17
|
}
|
18
|
-
rescue S3WebsiteError => e
|
19
|
-
puts e.message
|
20
|
-
exit 1
|
21
18
|
end
|
22
19
|
|
23
20
|
def self.config_create(dir)
|
24
21
|
ConfigLoader.check_s3_configuration dir
|
25
|
-
rescue S3WebsiteError => e
|
26
|
-
puts e.message
|
27
|
-
exit 1
|
28
22
|
end
|
29
23
|
|
30
24
|
private
|
data/s3_website.gemspec
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'error reporting' do
|
4
|
+
it 'prints the class name of the error' do
|
5
|
+
S3Website::error_report(SocketError.new('network is down')).should include(
|
6
|
+
'SocketError'
|
7
|
+
)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'prints the message of the error' do
|
11
|
+
S3Website::error_report(SocketError.new('network is down')).should eq(
|
12
|
+
'network is down (SocketError)'
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "only prints the message if the error is an #{S3Website::S3WebsiteError}" do
|
17
|
+
S3Website::error_report(S3Website::NoWebsiteDirectoryFound.new()).should eq(
|
18
|
+
"I can't find any website. Are you in the right directory?"
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3_website
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lauri Lehmijoki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -239,6 +239,7 @@ files:
|
|
239
239
|
- features/cloudfront.feature
|
240
240
|
- features/command-line-help.feature
|
241
241
|
- features/delete.feature
|
242
|
+
- features/error_reporting.feature
|
242
243
|
- features/instructions-for-new-user.feature
|
243
244
|
- features/jekyll-support.feature
|
244
245
|
- features/nanoc-support.feature
|
@@ -326,6 +327,7 @@ files:
|
|
326
327
|
- spec/lib/cloudfront/invalidator_spec.rb
|
327
328
|
- spec/lib/config_loader_spec.rb
|
328
329
|
- spec/lib/endpoint_spec.rb
|
330
|
+
- spec/lib/error_spec.rb
|
329
331
|
- spec/lib/keyboard_spec.rb
|
330
332
|
- spec/lib/parallelism_spec.rb
|
331
333
|
- spec/lib/paths_spec.rb
|
@@ -381,6 +383,7 @@ test_files:
|
|
381
383
|
- features/cloudfront.feature
|
382
384
|
- features/command-line-help.feature
|
383
385
|
- features/delete.feature
|
386
|
+
- features/error_reporting.feature
|
384
387
|
- features/instructions-for-new-user.feature
|
385
388
|
- features/jekyll-support.feature
|
386
389
|
- features/nanoc-support.feature
|
@@ -451,6 +454,7 @@ test_files:
|
|
451
454
|
- spec/lib/cloudfront/invalidator_spec.rb
|
452
455
|
- spec/lib/config_loader_spec.rb
|
453
456
|
- spec/lib/endpoint_spec.rb
|
457
|
+
- spec/lib/error_spec.rb
|
454
458
|
- spec/lib/keyboard_spec.rb
|
455
459
|
- spec/lib/parallelism_spec.rb
|
456
460
|
- spec/lib/paths_spec.rb
|