heirloom 0.0.2 → 0.0.3

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/lib/heirloom/cli.rb CHANGED
@@ -19,6 +19,7 @@ EOS
19
19
  opt :class, "Class of artifact. This should match the SCM repo", :type => :string
20
20
  opt :dir, "Directory which contains git repo", :type => :string
21
21
  opt :prefix, "Bucket prefix", :type => :string
22
+ opt :open, "Is this artifact open to public read?"
22
23
  opt :sha, "Git Sha", :type => :string
23
24
  end
24
25
 
@@ -27,10 +28,14 @@ EOS
27
28
  case cmd
28
29
  when 'build'
29
30
  raise 'Missing required args' unless @opts[:sha] && @opts[:class]
31
+
32
+ accounts = @opts[:accounts].nil? ? [] : @opts[:accounts].split(',')
33
+
30
34
  h = Heirloom.new :heirloom_type => @opts[:class],
31
35
  :source_dir => @opts[:dir] ||= ".",
32
36
  :prefix => @opts[:prefix],
33
- :accounts => @opts[:accounts].split(',')
37
+ :open => @opts[:open],
38
+ :accounts => accounts
34
39
 
35
40
  h.build_and_upload_to_s3(:sha => @opts[:sha])
36
41
  when 'list'
@@ -1,3 +1,3 @@
1
1
  module Heirloom
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/heirloom.rb CHANGED
@@ -43,6 +43,7 @@ module Heirloom
43
43
  def initialize(args)
44
44
  @sdb = self.class.connect_to_sdb
45
45
  @accounts = args[:accounts]
46
+ @open = args[:open] ||= false
46
47
 
47
48
  self.heirloom_type = args[:heirloom_type]
48
49
  self.source_dir = args[:source_dir]
@@ -117,14 +118,17 @@ module Heirloom
117
118
  # Upload the artifact
118
119
  b.files.create :key => "#{folder}/#{artifact}",
119
120
  :body => File.open(artifact_path),
120
- :public => false
121
+ :public => open?
121
122
 
122
123
  # Get the bucket owner name and ID
123
124
  id = connection.get_bucket_acl(bucket).body['Owner']['ID']
124
125
  name = connection.get_bucket_acl(bucket).body['Owner']['Name']
125
126
 
126
127
  # Set the objects ACLs
127
- connection.put_object_acl(bucket, "#{folder}/#{artifact}", build_bucket_grants(id, name))
128
+ # Only set them if ACLs exist
129
+ if @accounts.any?
130
+ connection.put_object_acl(bucket, "#{folder}/#{artifact}", build_bucket_grants(id, name))
131
+ end
128
132
 
129
133
  # Add the artifact location
130
134
  @sdb.put_attributes domain, sha, { "#{region}-s3-url" => "s3://#{bucket}/#{folder}/#{artifact}" }
@@ -203,6 +207,10 @@ module Heirloom
203
207
  ENV['USER']
204
208
  end
205
209
 
210
+ def open?
211
+ @open
212
+ end
213
+
206
214
  def hostname
207
215
  Socket.gethostname
208
216
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heirloom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70259568822860 !ruby/object:Gem::Requirement
16
+ requirement: &70356561112560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70259568822860
24
+ version_requirements: *70356561112560
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: fog
27
- requirement: &70259568822200 !ruby/object:Gem::Requirement
27
+ requirement: &70356561112100 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70259568822200
35
+ version_requirements: *70356561112100
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: grit
38
- requirement: &70259568821600 !ruby/object:Gem::Requirement
38
+ requirement: &70356561111680 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70259568821600
46
+ version_requirements: *70356561111680
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: logger
49
- requirement: &70259568820920 !ruby/object:Gem::Requirement
49
+ requirement: &70356561111260 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70259568820920
57
+ version_requirements: *70356561111260
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitar
60
- requirement: &70259568820320 !ruby/object:Gem::Requirement
60
+ requirement: &70356561110820 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70259568820320
68
+ version_requirements: *70356561110820
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: trollop
71
- requirement: &70259568819700 !ruby/object:Gem::Requirement
71
+ requirement: &70356561110380 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70259568819700
79
+ version_requirements: *70356561110380
80
80
  description: I help build and manage artifacts
81
81
  email:
82
82
  - brett@weav.net
@@ -109,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
109
  version: '0'
110
110
  segments:
111
111
  - 0
112
- hash: -2437410671225482023
112
+ hash: 2587255120957144358
113
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  none: false
115
115
  requirements:
@@ -118,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  version: '0'
119
119
  segments:
120
120
  - 0
121
- hash: -2437410671225482023
121
+ hash: 2587255120957144358
122
122
  requirements: []
123
123
  rubyforge_project: heirloom
124
124
  rubygems_version: 1.8.16