s3_website_monadic 0.0.32 → 0.0.33
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/.gitignore +1 -0
- data/README.md +7 -7
- data/additional-docs/development.md +9 -0
- data/bin/s3_website_monadic +1 -1
- data/changelog.md +13 -0
- data/lib/s3_website/version.rb +1 -1
- data/lib/s3_website.rb +3 -0
- data/release +1 -0
- data/s3_website.gemspec +1 -0
- data/src/main/scala/s3/website/model/push.scala +2 -1
- data/src/main/scala/s3/website/package.scala +8 -1
- data/src/test/scala/s3/website/S3WebsiteSpec.scala +28 -0
- data/vagrant/Vagrantfile +25 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f701f980a56f1ae501c3a926f7bf90c667670f0b
|
4
|
+
data.tar.gz: 6661ae37dfdbb82218ef2e51e0597830860d36a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3609367267234c2e73d0f2aa3b97c8cd7c489b8e208c69a3c1dce34b18f3f1ededc87e05dab97b2f463b641ad1700c0423fab5867ceb7c291f0cfb85d03026a7
|
7
|
+
data.tar.gz: 745e768c92b07c378ba48a43059af8d72e487f0b972920e809d26105b530acc7d92fd0630980980ad3ed6674256791ae5352f09ef351e4826a0741034581db04
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -72,6 +72,12 @@ s3_bucket: blog.example.com
|
|
72
72
|
roles](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances),
|
73
73
|
you can omit the `s3_id` and `s3_secret` keys in the config file.)
|
74
74
|
|
75
|
+
S3_website implements supports for reading environment variables from a file using
|
76
|
+
the [dotenv](https://github.com/bkeepers/dotenv) gem. You can create a `.env` file
|
77
|
+
in the project's root directory to take advantage of this feature. Please have
|
78
|
+
a look at [dotenv's usage guide](https://github.com/bkeepers/dotenv#usage) for
|
79
|
+
syntax information.
|
80
|
+
|
75
81
|
## Project goals
|
76
82
|
|
77
83
|
* Provide a command-line interface tool for deploying and managing S3 websites
|
@@ -141,13 +147,6 @@ gzip:
|
|
141
147
|
Remember that the extensions here are referring to the *compiled* extensions,
|
142
148
|
not the pre-processed extensions.
|
143
149
|
|
144
|
-
#### Gzip zopfli
|
145
|
-
|
146
|
-
By adding the line `gzip_zopfli: true` into the config file, you can benefit
|
147
|
-
from the zopfli algorithm, which is 100% compatible with the traditional gzip
|
148
|
-
algorithm. A zopfli compression takes longer but results in about 5% smaller
|
149
|
-
files.
|
150
|
-
|
151
150
|
### Using non-standard AWS regions
|
152
151
|
|
153
152
|
By default, `s3_website_monadic` uses the US Standard Region. You can upload your
|
@@ -408,6 +407,7 @@ Contributors (in alphabetical order)
|
|
408
407
|
* Christopher Petersen
|
409
408
|
* David Michael Barr
|
410
409
|
* David Raffensperger
|
410
|
+
* Douglas Teoh
|
411
411
|
* Greg Karékinian
|
412
412
|
* John Allison
|
413
413
|
* Jordan White
|
data/bin/s3_website_monadic
CHANGED
@@ -97,7 +97,7 @@ def resolve_jar(project_root, logger)
|
|
97
97
|
project_root + '/target/scala-2.11/s3_website.jar'
|
98
98
|
released_jar_lookup_paths = [
|
99
99
|
project_root + "/s3_website-#{S3Website::VERSION}.jar",
|
100
|
-
ENV['TMPDIR'] + "/s3_website-#{S3Website::VERSION}.jar"
|
100
|
+
(ENV['TMPDIR'] || '/tmp') + "/s3_website-#{S3Website::VERSION}.jar"
|
101
101
|
]
|
102
102
|
found_jar = ([development_jar_path] + released_jar_lookup_paths)
|
103
103
|
.select { |jar_path|
|
data/changelog.md
CHANGED
@@ -40,6 +40,19 @@ This project uses [Semantic Versioning](http://semver.org).
|
|
40
40
|
|
41
41
|
* You can no longer use this gem as a Ruby library
|
42
42
|
|
43
|
+
* `gzip_zopfli: true`
|
44
|
+
|
45
|
+
At the time of writing, there does not exist a stable zopfli implementation
|
46
|
+
for Java.
|
47
|
+
|
48
|
+
## 1.8.1
|
49
|
+
|
50
|
+
* Do not push the *.env* file
|
51
|
+
|
52
|
+
## 1.8.0
|
53
|
+
|
54
|
+
* Add support for (dotenv)[https://github.com/bkeepers/dotenv]
|
55
|
+
|
43
56
|
## 1.7.6
|
44
57
|
|
45
58
|
* Remove a test setting from *Gemfile*
|
data/lib/s3_website/version.rb
CHANGED
data/lib/s3_website.rb
CHANGED
data/release
CHANGED
data/s3_website.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.add_dependency 'thor', '= 0.18.1'
|
21
21
|
s.add_dependency 'configure-s3-website', '= 1.5.5'
|
22
22
|
s.add_dependency 'colored', '1.2'
|
23
|
+
s.add_dependency 'dotenv', '~> 0.11.1'
|
23
24
|
|
24
25
|
s.add_development_dependency 'rake', '10.1.1'
|
25
26
|
s.add_development_dependency 'octokit', '3.1.0'
|
@@ -122,7 +122,8 @@ object Files {
|
|
122
122
|
(exclusionRegexes: Seq[String]) => exclusionRegexes exists (rubyRegexMatches(s3Key, _))
|
123
123
|
)
|
124
124
|
}
|
125
|
-
val
|
125
|
+
val neverUpload = "s3_website.yml" :: ".env" :: Nil
|
126
|
+
val doNotUpload = excludeByConfig || (neverUpload contains s3Key)
|
126
127
|
if (doNotUpload) logger.debug(s"Excluded $s3Key from upload")
|
127
128
|
doNotUpload
|
128
129
|
}
|
@@ -103,7 +103,14 @@ package object website {
|
|
103
103
|
case exception: AmazonServiceException => Some(exception.getStatusCode)
|
104
104
|
case _ => None
|
105
105
|
}
|
106
|
-
|
106
|
+
val isAwsTimeoutException =
|
107
|
+
error match {
|
108
|
+
case exception: AmazonServiceException =>
|
109
|
+
// See http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList
|
110
|
+
exception.getErrorCode == "RequestTimeout"
|
111
|
+
case _ => false
|
112
|
+
}
|
113
|
+
httpStatusCode.exists(c => c >= 400 && c < 500) && !isAwsTimeoutException
|
107
114
|
}
|
108
115
|
|
109
116
|
implicit class NumReport(val num: Int) extends AnyVal {
|
@@ -109,6 +109,26 @@ class S3WebsiteSpec extends Specification {
|
|
109
109
|
verify(amazonS3Client, times(1)).putObject(Matchers.any(classOf[PutObjectRequest]))
|
110
110
|
}
|
111
111
|
|
112
|
+
"try again if the request times out" in new AllInSameDirectory with EmptySite with MockAWS with DefaultRunMode {
|
113
|
+
var attempt = 0
|
114
|
+
when(amazonS3Client putObject Matchers.any(classOf[PutObjectRequest])) thenAnswer new Answer[PutObjectResult] {
|
115
|
+
def answer(invocation: InvocationOnMock) = {
|
116
|
+
attempt += 1
|
117
|
+
if (attempt < 2) {
|
118
|
+
val e = new AmazonServiceException("Too long a request")
|
119
|
+
e.setStatusCode(400)
|
120
|
+
e.setErrorCode("RequestTimeout")
|
121
|
+
throw e
|
122
|
+
} else {
|
123
|
+
new PutObjectResult
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}
|
127
|
+
setLocalFile("index.html")
|
128
|
+
val exitStatus = push
|
129
|
+
verify(amazonS3Client, times(2)).putObject(Matchers.any(classOf[PutObjectRequest]))
|
130
|
+
}
|
131
|
+
|
112
132
|
"try again if the delete fails" in new AllInSameDirectory with EmptySite with MockAWS with DefaultRunMode {
|
113
133
|
setS3Files(S3File("old.html", md5Hex("<h1>old text</h1>")))
|
114
134
|
deleteFailsAndThenSucceeds(howManyFailures = 5)
|
@@ -274,6 +294,14 @@ class S3WebsiteSpec extends Specification {
|
|
274
294
|
}
|
275
295
|
}
|
276
296
|
|
297
|
+
".env file" should { // The .env file is the https://github.com/bkeepers/dotenv file
|
298
|
+
"never be uploaded" in new AllInSameDirectory with EmptySite with MockAWS with DefaultRunMode {
|
299
|
+
setLocalFile(".env")
|
300
|
+
push
|
301
|
+
noUploadsOccurred must beTrue
|
302
|
+
}
|
303
|
+
}
|
304
|
+
|
277
305
|
"exclude_from_upload: string" should {
|
278
306
|
"result in matching files not being uploaded" in new AllInSameDirectory with EmptySite with MockAWS with DefaultRunMode {
|
279
307
|
config = "exclude_from_upload: .DS_.*?"
|
data/vagrant/Vagrantfile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
# vi: set ft=ruby :
|
3
|
+
|
4
|
+
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
|
5
|
+
VAGRANTFILE_API_VERSION = "2"
|
6
|
+
|
7
|
+
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
8
|
+
vms = {
|
9
|
+
'ubuntu_14.04' => {
|
10
|
+
:box_url => 'https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box',
|
11
|
+
:ip => '33.33.33.0'
|
12
|
+
},
|
13
|
+
'centos_6.5' => {
|
14
|
+
:box_url => 'http://puppet-vagrant-boxes.puppetlabs.com/centos-65-x64-virtualbox-puppet.box',
|
15
|
+
:ip => '33.33.33.1'
|
16
|
+
}
|
17
|
+
}
|
18
|
+
vms.each do |vm_name, vm_opts|
|
19
|
+
config.vm.define vm_name do |node_config|
|
20
|
+
node_config.vm.box = vm_name
|
21
|
+
node_config.vm.box_url = vm_opts.fetch(:box_url)
|
22
|
+
node_config.vm.network :private_network, ip: vm_opts.fetch(:ip)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3_website_monadic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.33
|
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-05-
|
11
|
+
date: 2014-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: dotenv
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.11.1
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.11.1
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,6 +109,7 @@ files:
|
|
95
109
|
- LICENSE
|
96
110
|
- README.md
|
97
111
|
- Rakefile
|
112
|
+
- additional-docs/development.md
|
98
113
|
- additional-docs/example-configurations.md
|
99
114
|
- additional-docs/setting-up-aws-credentials.md
|
100
115
|
- assembly.sbt
|
@@ -124,6 +139,7 @@ files:
|
|
124
139
|
- src/main/scala/s3/website/model/ssg.scala
|
125
140
|
- src/main/scala/s3/website/package.scala
|
126
141
|
- src/test/scala/s3/website/S3WebsiteSpec.scala
|
142
|
+
- vagrant/Vagrantfile
|
127
143
|
homepage: https://github.com/laurilehmijoki/s3_website/tree/s3_website_monadic
|
128
144
|
licenses:
|
129
145
|
- MIT
|