s3deployer 0.0.4 → 0.0.5
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.
- data/.gitignore +1 -0
- data/.rbenv-gemsets +1 -0
- data/README.markdown +15 -4
- data/ShoveItOverThere.jpg +0 -0
- data/bin/s3deploy +14 -0
- data/lib/s3deployer/version.rb +1 -1
- data/lib/s3deployer.rb +5 -2
- data/s3deployer.gemspec +1 -0
- data/spec/s3deployer_spec.rb +21 -2
- metadata +10 -5
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pkg
|
data/.rbenv-gemsets
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
s3deployer
|
data/README.markdown
CHANGED
@@ -1,5 +1,16 @@
|
|
1
|
-
|
2
|
-
After rewriting a script to deploy an app to S3, I eventually got sick of it and
|
3
|
-
just made this gem.
|
1
|
+
# Deploy A Pile of Stuff to S3
|
4
2
|
|
5
|
-
|
3
|
+
Because sometimes, you just want to shove a bunch of stuff onto S3
|
4
|
+
|
5
|
+
## Deploying via a Script
|
6
|
+
|
7
|
+
deployer = S3Deployer.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])
|
8
|
+
deployer.deploy("#{Dir.pwd}/directory_to_deploy", "amazon.bucket.name")
|
9
|
+
|
10
|
+
## Deploying via the Command Line
|
11
|
+
|
12
|
+
Just `cd` to the directory you want to deploy and run
|
13
|
+
|
14
|
+
s3deploy BUCKET_NAME
|
15
|
+
|
16
|
+

|
Binary file
|
data/bin/s3deploy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 's3deployer'
|
4
|
+
|
5
|
+
if ARGV[0].nil?
|
6
|
+
raise "Please supply a bucket name"
|
7
|
+
exit 1
|
8
|
+
end
|
9
|
+
|
10
|
+
bucket = ARGV[0]
|
11
|
+
access_key,secret_key = ENV['ACCESS_KEY'],ENV['SECRET_KEY']
|
12
|
+
deployer = S3Deployer.new access_key, secret_key
|
13
|
+
deployer.deploy '.', bucket
|
14
|
+
|
data/lib/s3deployer/version.rb
CHANGED
data/lib/s3deployer.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'aws/s3'
|
2
|
+
require 'pathname'
|
3
|
+
|
2
4
|
class S3Deployer
|
3
5
|
attr_accessor :directory_to_deploy, :bucket_name
|
4
6
|
def initialize(access_key, secret_key)
|
@@ -8,7 +10,7 @@ class S3Deployer
|
|
8
10
|
end
|
9
11
|
def deploy(directory_to_deploy, bucket_name)
|
10
12
|
@bucket_name = bucket_name
|
11
|
-
@directory_to_deploy = directory_to_deploy
|
13
|
+
@directory_to_deploy = File.expand_path(directory_to_deploy)
|
12
14
|
iterate_through_and_deploy(directory_to_deploy)
|
13
15
|
end
|
14
16
|
|
@@ -25,7 +27,8 @@ class S3Deployer
|
|
25
27
|
end
|
26
28
|
|
27
29
|
def upload_item(item)
|
28
|
-
|
30
|
+
item_as_path = Pathname.new(item)
|
31
|
+
s3_name = item_as_path.sub("#{@directory_to_deploy}/", '').cleanpath.to_s
|
29
32
|
puts "uploading #{item} as #{s3_name}"
|
30
33
|
AWS::S3::S3Object.store(s3_name, open(item), bucket_name)
|
31
34
|
end
|
data/s3deployer.gemspec
CHANGED
data/spec/s3deployer_spec.rb
CHANGED
@@ -23,12 +23,31 @@ describe S3Deployer do
|
|
23
23
|
create_file("thing", "asdf");
|
24
24
|
create_file("hiphopper", "qwer");
|
25
25
|
subject.deploy("#{Dir.pwd}/files", 'bucket')
|
26
|
-
AWS::S3::S3Object.should have_received(:store).with('
|
27
|
-
AWS::S3::S3Object.should have_received(:store).with('
|
26
|
+
AWS::S3::S3Object.should have_received(:store).with('thing', "asdf", 'bucket')
|
27
|
+
AWS::S3::S3Object.should have_received(:store).with('hiphopper', "asdf", 'bucket')
|
28
28
|
File.delete("#{Dir.pwd}/files/thing")
|
29
29
|
File.delete("#{Dir.pwd}/files/hiphopper")
|
30
30
|
end
|
31
31
|
end
|
32
|
+
context "with . as directory to deploy" do
|
33
|
+
it "doesn't strip out .'s in file names" do
|
34
|
+
create_file("blah.html", "asdf")
|
35
|
+
Dir.chdir "#{Dir.pwd}/files" do
|
36
|
+
subject.deploy '.', 'bucket'
|
37
|
+
end
|
38
|
+
AWS::S3::S3Object.should have_received(:store).with 'blah.html', 'asdf', 'bucket'
|
39
|
+
File.delete("#{Dir.pwd}/files/blah.html")
|
40
|
+
end
|
41
|
+
it "includes directories" do
|
42
|
+
Dir.mkdir 'files/sub' unless Dir.exists? 'files/sub'
|
43
|
+
create_file "sub/blah.html", "asdf"
|
44
|
+
Dir.chdir "#{Dir.pwd}/files" do
|
45
|
+
subject.deploy '.', 'bucket'
|
46
|
+
end
|
47
|
+
AWS::S3::S3Object.should have_received(:store).with 'sub/blah.html', 'asdf', 'bucket'
|
48
|
+
File.delete("#{Dir.pwd}/files/sub/blah.html")
|
49
|
+
end
|
50
|
+
end
|
32
51
|
end
|
33
52
|
end
|
34
53
|
def create_file(filename, content)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3deployer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-s3
|
16
|
-
requirement: &
|
16
|
+
requirement: &70175425134860 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,20 +21,25 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70175425134860
|
25
25
|
description: A simple way to deploy a directory to Amazon s3
|
26
26
|
email:
|
27
27
|
- zee@zeespencer.com
|
28
|
-
executables:
|
28
|
+
executables:
|
29
|
+
- s3deploy
|
29
30
|
extensions: []
|
30
31
|
extra_rdoc_files: []
|
31
32
|
files:
|
33
|
+
- .gitignore
|
34
|
+
- .rbenv-gemsets
|
32
35
|
- .rvmrc
|
33
36
|
- Gemfile
|
34
37
|
- Gemfile.lock
|
35
38
|
- Makefile
|
36
39
|
- README.markdown
|
37
40
|
- Rakefile
|
41
|
+
- ShoveItOverThere.jpg
|
42
|
+
- bin/s3deploy
|
38
43
|
- lib/s3deployer.rb
|
39
44
|
- lib/s3deployer/version.rb
|
40
45
|
- s3deployer.gemspec
|