right_publish 0.4.2 → 0.5.0
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/CHANGELOG.md +2 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +9 -16
- data/VERSION +1 -1
- data/bin/right_publish +2 -1
- data/lib/right_publish/repo.rb +66 -22
- data/right_publish.gemspec +6 -5
- data/spec/repos/apt_spec.rb +1 -0
- data/spec/repos/gem_spec.rb +1 -0
- data/spec/repos/yum_spec.rb +1 -0
- data/spec/spec_helper.rb +1 -1
- metadata +193 -193
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -19,16 +19,21 @@ GEM
|
|
19
19
|
activesupport (= 2.3.18)
|
20
20
|
rack (~> 1.1.0)
|
21
21
|
activesupport (2.3.18)
|
22
|
-
archive-tar-minitar (0.5.2)
|
23
22
|
builder (3.2.0)
|
24
|
-
columnize (0.
|
23
|
+
columnize (0.8.9)
|
25
24
|
cucumber (1.2.5)
|
26
25
|
builder (>= 2.1.2)
|
27
26
|
diff-lcs (>= 1.1.3)
|
28
27
|
gherkin (~> 2.11.7)
|
29
28
|
multi_json (~> 1.3)
|
29
|
+
debugger (1.6.7)
|
30
|
+
columnize (>= 0.3.1)
|
31
|
+
debugger-linecache (~> 1.2.0)
|
32
|
+
debugger-ruby_core_source (~> 1.3.5)
|
33
|
+
debugger-linecache (1.2.0)
|
34
|
+
debugger-ruby_core_source (1.3.5)
|
30
35
|
diff-lcs (1.2.3)
|
31
|
-
excon (0.
|
36
|
+
excon (0.25.3)
|
32
37
|
flexmock (0.9.0)
|
33
38
|
fog (1.10.1)
|
34
39
|
builder
|
@@ -52,8 +57,6 @@ GEM
|
|
52
57
|
json (1.7.7)
|
53
58
|
linecache (0.46)
|
54
59
|
rbx-require-relative (> 0.0.4)
|
55
|
-
linecache19 (0.5.12)
|
56
|
-
ruby_core_source (>= 0.1.4)
|
57
60
|
mime-types (1.22)
|
58
61
|
multi_json (1.7.2)
|
59
62
|
net-scp (1.1.0)
|
@@ -79,17 +82,7 @@ GEM
|
|
79
82
|
ruby-debug-base (~> 0.10.4.0)
|
80
83
|
ruby-debug-base (0.10.4)
|
81
84
|
linecache (>= 0.3)
|
82
|
-
ruby-debug-base19 (0.11.25)
|
83
|
-
columnize (>= 0.3.1)
|
84
|
-
linecache19 (>= 0.5.11)
|
85
|
-
ruby_core_source (>= 0.1.4)
|
86
|
-
ruby-debug19 (0.11.6)
|
87
|
-
columnize (>= 0.3.1)
|
88
|
-
linecache19 (>= 0.5.11)
|
89
|
-
ruby-debug-base19 (>= 0.11.19)
|
90
85
|
ruby-hmac (0.4.0)
|
91
|
-
ruby_core_source (0.1.5)
|
92
|
-
archive-tar-minitar (>= 0.5.2)
|
93
86
|
simplecov (0.7.1)
|
94
87
|
multi_json (~> 1.0)
|
95
88
|
simplecov-html (~> 0.7.1)
|
@@ -101,6 +94,7 @@ PLATFORMS
|
|
101
94
|
|
102
95
|
DEPENDENCIES
|
103
96
|
builder
|
97
|
+
debugger
|
104
98
|
excon (<= 0.25.3)
|
105
99
|
flexmock (~> 0.9)
|
106
100
|
fog (~> 1.9)
|
@@ -111,6 +105,5 @@ DEPENDENCIES
|
|
111
105
|
right_develop (~> 1.0)!
|
112
106
|
rspec (~> 2.0)
|
113
107
|
ruby-debug (>= 0.10)
|
114
|
-
ruby-debug19 (>= 0.11.6)
|
115
108
|
simplecov
|
116
109
|
trollop (~> 2.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/bin/right_publish
CHANGED
data/lib/right_publish/repo.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'right_publish/profile'
|
2
2
|
require 'right_publish/storage'
|
3
|
+
require 'time'
|
3
4
|
|
4
5
|
module RightPublish
|
5
6
|
|
@@ -32,19 +33,21 @@ module RightPublish
|
|
32
33
|
end
|
33
34
|
|
34
35
|
class Repo
|
36
|
+
|
37
|
+
LOCK_FILE_NAME = 'lock.txt'
|
38
|
+
LOCK_PERIOD = 30 * 60 # 30 minutes
|
39
|
+
LOCK_RETRY_INTERVAL = 1 * 60 # 1 minute
|
40
|
+
|
35
41
|
def initialize(option_key)
|
36
42
|
@repository_type ||= option_key
|
37
43
|
end
|
38
44
|
|
39
45
|
# Sync files from remote to local storage
|
40
46
|
def pull()
|
41
|
-
Profile.log("Fetching #{repo_human_name
|
47
|
+
Profile.log("Fetching #{repo_human_name} files from remote...")
|
42
48
|
|
43
49
|
begin
|
44
|
-
sync_dirs(
|
45
|
-
get_storage(Profile.config[:remote_storage][:provider]),
|
46
|
-
get_storage(Profile.config[:local_storage][:provider]),
|
47
|
-
Profile.config[@repository_type][:subdir])
|
50
|
+
sync_dirs(remote_storage, local_storage, repo_config[:subdir])
|
48
51
|
rescue Exception => e
|
49
52
|
RightPublish::Profile.log("Could not synchronize storage:\n\t#{e}", :error)
|
50
53
|
raise RuntimeError, "pull from remote failed."
|
@@ -53,13 +56,10 @@ module RightPublish
|
|
53
56
|
|
54
57
|
# Sync files from local to remote storage
|
55
58
|
def push()
|
56
|
-
Profile.log("Committing local #{repo_human_name
|
59
|
+
Profile.log("Committing local #{repo_human_name} files to remote...")
|
57
60
|
|
58
61
|
begin
|
59
|
-
sync_dirs(
|
60
|
-
get_storage(Profile.config[:local_storage][:provider]),
|
61
|
-
get_storage(Profile.config[:remote_storage][:provider]),
|
62
|
-
Profile.config[@repository_type][:subdir])
|
62
|
+
sync_dirs(local_storage, remote_storage, repo_config[:subdir])
|
63
63
|
rescue Exception => e
|
64
64
|
RightPublish::Profile.log("Could not sychronize storage:\n\t#{e}", :error)
|
65
65
|
raise RuntimeError, "push to remote failed."
|
@@ -70,14 +70,12 @@ module RightPublish
|
|
70
70
|
# @option options [String] :subdir a subdirectory (common prefix); only files matching this prefix will be included
|
71
71
|
# @option options [Array] :filter a whitelist of String glob patterns to filter files, i.e. ["*.rpm", "*.deb"]
|
72
72
|
def annotate(options={})
|
73
|
-
Profile.log("Creating HTML directory listing for #{repo_human_name
|
73
|
+
Profile.log("Creating HTML directory listing for #{repo_human_name} files...")
|
74
74
|
|
75
75
|
options[:subdir] ||= repo_config[:subdir]
|
76
76
|
|
77
77
|
files = []
|
78
|
-
RightPublish::Storage.ls(
|
79
|
-
get_storage(Profile.config[:local_storage][:provider]),
|
80
|
-
:subdir => options[:subdir]) do |file|
|
78
|
+
RightPublish::Storage.ls(local_storage, :subdir => options[:subdir]) do |file|
|
81
79
|
files << file
|
82
80
|
end
|
83
81
|
|
@@ -90,17 +88,19 @@ module RightPublish
|
|
90
88
|
html = RightPublish::Annotation.generate_html(files, strip, html_options)
|
91
89
|
|
92
90
|
output = File.join(repo_config[:subdir], 'index.html')
|
93
|
-
local_dir =
|
91
|
+
local_dir = local_storage.get_directories
|
94
92
|
local_dir.files.create(:key => output, :body => html)
|
95
93
|
end
|
96
94
|
|
97
95
|
# Perform one-shot publish of one or more packages.
|
98
96
|
# "One-shot" means: pull, add, annotate and push.
|
99
97
|
def publish(file_or_dir, target)
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
98
|
+
lock do
|
99
|
+
pull
|
100
|
+
add(file_or_dir, target)
|
101
|
+
annotate
|
102
|
+
push
|
103
|
+
end
|
104
104
|
end
|
105
105
|
|
106
106
|
# Add a new package to local storage and reindex if necessary
|
@@ -110,6 +110,40 @@ module RightPublish
|
|
110
110
|
|
111
111
|
private
|
112
112
|
|
113
|
+
def lock(&block)
|
114
|
+
while( (_lock_time = lock_time) != nil && Time.now.utc <= _lock_time ) do
|
115
|
+
Profile.log "Lock is set to expire at #{_lock_time}, waiting for #{LOCK_RETRY_INTERVAL} second(s) ..."
|
116
|
+
sleep LOCK_RETRY_INTERVAL
|
117
|
+
end
|
118
|
+
file = update_lock_time(LOCK_PERIOD)
|
119
|
+
Profile.log "#{repo_human_name} has been locked for #{LOCK_PERIOD/60} minute(s)."
|
120
|
+
yield
|
121
|
+
file.destroy
|
122
|
+
Profile.log "#{repo_human_name} has been unlocked."
|
123
|
+
end
|
124
|
+
|
125
|
+
def lock_time
|
126
|
+
if lock_file
|
127
|
+
return Time.parse(lock_file.body)
|
128
|
+
else
|
129
|
+
nil
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def update_lock_time(timeout)
|
134
|
+
remote_storage.get_directories.files.create(:key => lock_file_path, :body => (Time.now.utc + timeout).to_s, :acl=>'public-read', :content_type => 'text/plain')
|
135
|
+
end
|
136
|
+
|
137
|
+
def lock_file
|
138
|
+
remote_storage.get_directories.files.get(lock_file_path)
|
139
|
+
rescue Excon::Errors::NotFound
|
140
|
+
nil
|
141
|
+
end
|
142
|
+
|
143
|
+
def lock_file_path
|
144
|
+
File.join(repo_config[:subdir], LOCK_FILE_NAME)
|
145
|
+
end
|
146
|
+
|
113
147
|
def build_glob(ext)
|
114
148
|
# Transform array into glob compliant pattern
|
115
149
|
'{'.concat Array(ext).join(',').concat '}'
|
@@ -161,6 +195,16 @@ module RightPublish
|
|
161
195
|
system("#{autosign} #{cmd}")
|
162
196
|
end
|
163
197
|
|
198
|
+
# proxy method
|
199
|
+
def remote_storage
|
200
|
+
get_storage(Profile.config[:remote_storage][:provider])
|
201
|
+
end
|
202
|
+
|
203
|
+
# proxy method
|
204
|
+
def local_storage
|
205
|
+
get_storage(Profile.config[:local_storage][:provider])
|
206
|
+
end
|
207
|
+
|
164
208
|
def get_storage(provider)
|
165
209
|
type = RightPublish::StorageManager.storage_types[provider]
|
166
210
|
RightPublish::StorageManager.get_storage(type)
|
@@ -168,7 +212,7 @@ module RightPublish
|
|
168
212
|
|
169
213
|
def install_file(file, dest)
|
170
214
|
Profile.log("#{file} => #{dest}")
|
171
|
-
local_dir =
|
215
|
+
local_dir = local_storage.get_directories
|
172
216
|
File.open(file, "rb") { |chunk| local_dir.files.create(:key => File.join(dest, File.basename(file)), :body => chunk) }
|
173
217
|
end
|
174
218
|
|
@@ -181,8 +225,8 @@ module RightPublish
|
|
181
225
|
Profile.config[@repository_type]
|
182
226
|
end
|
183
227
|
|
184
|
-
def repo_human_name
|
185
|
-
|
228
|
+
def repo_human_name
|
229
|
+
@repository_type.to_s.sub(/_/, ' ')
|
186
230
|
end
|
187
231
|
|
188
232
|
def sync_dirs(src, dest, subdir='')
|
data/right_publish.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "right_publish"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Brian Szmyd", "Tony Spataro"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2014-05-28"
|
13
13
|
s.description = "A tool for maintaining S3-based DEB, GEM and RPM packages."
|
14
14
|
s.email = "support@rightscale.com"
|
15
15
|
s.executables = ["autosign.expect", "right_publish"]
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".gitignore",
|
21
21
|
".rspec",
|
22
|
+
"CHANGELOG.md",
|
22
23
|
"Gemfile",
|
23
24
|
"Gemfile.lock",
|
24
25
|
"README.rdoc",
|
@@ -75,7 +76,7 @@ Gem::Specification.new do |s|
|
|
75
76
|
s.add_development_dependency(%q<flexmock>, ["~> 0.9"])
|
76
77
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
77
78
|
s.add_development_dependency(%q<ruby-debug>, [">= 0.10"])
|
78
|
-
s.add_development_dependency(%q<
|
79
|
+
s.add_development_dependency(%q<debugger>, [">= 0"])
|
79
80
|
else
|
80
81
|
s.add_dependency(%q<builder>, [">= 0"])
|
81
82
|
s.add_dependency(%q<fog>, ["~> 1.9"])
|
@@ -90,7 +91,7 @@ Gem::Specification.new do |s|
|
|
90
91
|
s.add_dependency(%q<flexmock>, ["~> 0.9"])
|
91
92
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
92
93
|
s.add_dependency(%q<ruby-debug>, [">= 0.10"])
|
93
|
-
s.add_dependency(%q<
|
94
|
+
s.add_dependency(%q<debugger>, [">= 0"])
|
94
95
|
end
|
95
96
|
else
|
96
97
|
s.add_dependency(%q<builder>, [">= 0"])
|
@@ -106,7 +107,7 @@ Gem::Specification.new do |s|
|
|
106
107
|
s.add_dependency(%q<flexmock>, ["~> 0.9"])
|
107
108
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
108
109
|
s.add_dependency(%q<ruby-debug>, [">= 0.10"])
|
109
|
-
s.add_dependency(%q<
|
110
|
+
s.add_dependency(%q<debugger>, [">= 0"])
|
110
111
|
end
|
111
112
|
end
|
112
113
|
|
data/spec/repos/apt_spec.rb
CHANGED
@@ -13,6 +13,7 @@ describe RightPublish::AptRepo do
|
|
13
13
|
obj.should_receive(:do_in_subdir).and_return {|dir,block| block.call}
|
14
14
|
obj.should_receive(:prune_all)
|
15
15
|
obj.should_receive(:write_conf_file)
|
16
|
+
obj.should_receive(:lock).and_yield
|
16
17
|
end
|
17
18
|
|
18
19
|
flexmock(RightPublish::Profile) do |obj|
|
data/spec/repos/gem_spec.rb
CHANGED
@@ -10,6 +10,7 @@ describe RightPublish::GemRepo do
|
|
10
10
|
obj.should_receive(:annotate)
|
11
11
|
obj.should_receive(:push)
|
12
12
|
obj.should_receive(:do_in_subdir).and_return {|dir,block| block.call}
|
13
|
+
obj.should_receive(:lock).and_yield
|
13
14
|
end
|
14
15
|
|
15
16
|
flexmock(File) { |obj| obj.should_receive(:file?).and_return(true) }
|
data/spec/repos/yum_spec.rb
CHANGED
@@ -22,6 +22,7 @@ describe RightPublish::YumRepo do
|
|
22
22
|
obj.should_receive(:do_in_subdir).and_return {|dir,block| block.call}
|
23
23
|
obj.should_receive(:yum_prune)
|
24
24
|
obj.should_receive(:pkg_parts).and_return { |pkg| pkg_parts(pkg) }
|
25
|
+
obj.should_receive(:lock).and_yield
|
25
26
|
end
|
26
27
|
|
27
28
|
flexmock(RightPublish::Profile) do |obj|
|
data/spec/spec_helper.rb
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
require 'rubygems'
|
23
23
|
require 'bundler/setup'
|
24
24
|
require 'flexmock'
|
25
|
-
require '
|
25
|
+
require 'debugger'
|
26
26
|
require 'simplecov' unless RUBY_VERSION =~ /1\.8/
|
27
27
|
|
28
28
|
# This is a Jewelerized project; it won't be activated as a gem when invoked in situ.
|
metadata
CHANGED
@@ -1,247 +1,253 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: right_publish
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 2
|
10
|
-
version: 0.4.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Brian Szmyd
|
14
9
|
- Tony Spataro
|
15
10
|
autorequire:
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: builder
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
23
18
|
none: false
|
24
|
-
requirements:
|
25
|
-
- -
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
version: "0"
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
31
23
|
type: :runtime
|
32
|
-
requirement: *id001
|
33
24
|
prerelease: false
|
34
|
-
|
35
|
-
|
36
|
-
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: fog
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
37
34
|
none: false
|
38
|
-
requirements:
|
35
|
+
requirements:
|
39
36
|
- - ~>
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
|
42
|
-
segments:
|
43
|
-
- 1
|
44
|
-
- 9
|
45
|
-
version: "1.9"
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '1.9'
|
46
39
|
type: :runtime
|
47
|
-
requirement: *id002
|
48
40
|
prerelease: false
|
49
|
-
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
42
|
none: false
|
53
|
-
requirements:
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '1.9'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: excon
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
54
52
|
- - <=
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
hash: 125
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
- 25
|
60
|
-
- 3
|
53
|
+
- !ruby/object:Gem::Version
|
61
54
|
version: 0.25.3
|
62
55
|
type: :runtime
|
63
|
-
requirement: *id003
|
64
56
|
prerelease: false
|
65
|
-
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
58
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
|
74
|
-
- 1
|
75
|
-
- 0
|
76
|
-
version: "1.0"
|
77
|
-
type: :runtime
|
78
|
-
requirement: *id004
|
79
|
-
prerelease: false
|
59
|
+
requirements:
|
60
|
+
- - <=
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.25.3
|
63
|
+
- !ruby/object:Gem::Dependency
|
80
64
|
name: mime-types
|
81
|
-
|
82
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
83
66
|
none: false
|
84
|
-
requirements:
|
67
|
+
requirements:
|
85
68
|
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
segments:
|
89
|
-
- 2
|
90
|
-
- 0
|
91
|
-
version: "2.0"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '1.0'
|
92
71
|
type: :runtime
|
93
|
-
requirement: *id005
|
94
72
|
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '1.0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
95
80
|
name: trollop
|
96
|
-
|
97
|
-
version_requirements: &id006 !ruby/object:Gem::Requirement
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
98
82
|
none: false
|
99
|
-
requirements:
|
83
|
+
requirements:
|
100
84
|
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
|
104
|
-
- 0
|
105
|
-
- 9
|
106
|
-
version: "0.9"
|
107
|
-
type: :development
|
108
|
-
requirement: *id006
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '2.0'
|
87
|
+
type: :runtime
|
109
88
|
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ~>
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '2.0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
110
96
|
name: rake
|
111
|
-
|
112
|
-
version_requirements: &id007 !ruby/object:Gem::Requirement
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
113
98
|
none: false
|
114
|
-
requirements:
|
99
|
+
requirements:
|
115
100
|
- - ~>
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
|
118
|
-
segments:
|
119
|
-
- 1
|
120
|
-
- 8
|
121
|
-
- 3
|
122
|
-
version: 1.8.3
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0.9'
|
123
103
|
type: :development
|
124
|
-
requirement: *id007
|
125
104
|
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.9'
|
111
|
+
- !ruby/object:Gem::Dependency
|
126
112
|
name: jeweler
|
127
|
-
|
128
|
-
version_requirements: &id008 !ruby/object:Gem::Requirement
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
129
114
|
none: false
|
130
|
-
requirements:
|
115
|
+
requirements:
|
131
116
|
- - ~>
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
|
134
|
-
segments:
|
135
|
-
- 1
|
136
|
-
- 0
|
137
|
-
version: "1.0"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 1.8.3
|
138
119
|
type: :development
|
139
|
-
requirement: *id008
|
140
120
|
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ~>
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: 1.8.3
|
127
|
+
- !ruby/object:Gem::Dependency
|
141
128
|
name: right_develop
|
142
|
-
|
143
|
-
version_requirements: &id009 !ruby/object:Gem::Requirement
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
144
130
|
none: false
|
145
|
-
requirements:
|
146
|
-
- -
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
|
149
|
-
segments:
|
150
|
-
- 2
|
151
|
-
- 4
|
152
|
-
- 2
|
153
|
-
version: 2.4.2
|
131
|
+
requirements:
|
132
|
+
- - ~>
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '1.0'
|
154
135
|
type: :development
|
155
|
-
requirement: *id009
|
156
136
|
prerelease: false
|
157
|
-
|
158
|
-
- !ruby/object:Gem::Dependency
|
159
|
-
version_requirements: &id010 !ruby/object:Gem::Requirement
|
137
|
+
version_requirements: !ruby/object:Gem::Requirement
|
160
138
|
none: false
|
161
|
-
requirements:
|
139
|
+
requirements:
|
162
140
|
- - ~>
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '1.0'
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: rdoc
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 2.4.2
|
169
151
|
type: :development
|
170
|
-
requirement: *id010
|
171
152
|
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
155
|
+
requirements:
|
156
|
+
- - ! '>='
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 2.4.2
|
159
|
+
- !ruby/object:Gem::Dependency
|
172
160
|
name: rspec
|
173
|
-
|
174
|
-
version_requirements: &id011 !ruby/object:Gem::Requirement
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
175
162
|
none: false
|
176
|
-
requirements:
|
163
|
+
requirements:
|
177
164
|
- - ~>
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
|
180
|
-
segments:
|
181
|
-
- 0
|
182
|
-
- 9
|
183
|
-
version: "0.9"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '2.0'
|
184
167
|
type: :development
|
185
|
-
requirement: *id011
|
186
168
|
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ~>
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '2.0'
|
175
|
+
- !ruby/object:Gem::Dependency
|
187
176
|
name: flexmock
|
188
|
-
|
189
|
-
version_requirements: &id012 !ruby/object:Gem::Requirement
|
177
|
+
requirement: !ruby/object:Gem::Requirement
|
190
178
|
none: false
|
191
|
-
requirements:
|
192
|
-
- -
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
|
195
|
-
segments:
|
196
|
-
- 0
|
197
|
-
version: "0"
|
179
|
+
requirements:
|
180
|
+
- - ~>
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0.9'
|
198
183
|
type: :development
|
199
|
-
requirement: *id012
|
200
184
|
prerelease: false
|
185
|
+
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
187
|
+
requirements:
|
188
|
+
- - ~>
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '0.9'
|
191
|
+
- !ruby/object:Gem::Dependency
|
201
192
|
name: simplecov
|
202
|
-
|
203
|
-
version_requirements: &id013 !ruby/object:Gem::Requirement
|
193
|
+
requirement: !ruby/object:Gem::Requirement
|
204
194
|
none: false
|
205
|
-
requirements:
|
206
|
-
- -
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
|
209
|
-
segments:
|
210
|
-
- 0
|
211
|
-
- 10
|
212
|
-
version: "0.10"
|
195
|
+
requirements:
|
196
|
+
- - ! '>='
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '0'
|
213
199
|
type: :development
|
214
|
-
requirement: *id013
|
215
200
|
prerelease: false
|
201
|
+
version_requirements: !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
203
|
+
requirements:
|
204
|
+
- - ! '>='
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '0'
|
207
|
+
- !ruby/object:Gem::Dependency
|
216
208
|
name: ruby-debug
|
217
|
-
|
218
|
-
|
209
|
+
requirement: !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
211
|
+
requirements:
|
212
|
+
- - ! '>='
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '0.10'
|
215
|
+
type: :development
|
216
|
+
prerelease: false
|
217
|
+
version_requirements: !ruby/object:Gem::Requirement
|
218
|
+
none: false
|
219
|
+
requirements:
|
220
|
+
- - ! '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0.10'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: debugger
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
219
226
|
none: false
|
220
|
-
requirements:
|
221
|
-
- -
|
222
|
-
- !ruby/object:Gem::Version
|
223
|
-
|
224
|
-
segments:
|
225
|
-
- 0
|
226
|
-
- 11
|
227
|
-
- 6
|
228
|
-
version: 0.11.6
|
227
|
+
requirements:
|
228
|
+
- - ! '>='
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
229
231
|
type: :development
|
230
|
-
requirement: *id014
|
231
232
|
prerelease: false
|
232
|
-
|
233
|
+
version_requirements: !ruby/object:Gem::Requirement
|
234
|
+
none: false
|
235
|
+
requirements:
|
236
|
+
- - ! '>='
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: '0'
|
233
239
|
description: A tool for maintaining S3-based DEB, GEM and RPM packages.
|
234
240
|
email: support@rightscale.com
|
235
|
-
executables:
|
236
|
-
- right_publish
|
241
|
+
executables:
|
237
242
|
- autosign.expect
|
243
|
+
- right_publish
|
238
244
|
extensions: []
|
239
|
-
|
240
|
-
extra_rdoc_files:
|
245
|
+
extra_rdoc_files:
|
241
246
|
- README.rdoc
|
242
|
-
files:
|
247
|
+
files:
|
243
248
|
- .gitignore
|
244
249
|
- .rspec
|
250
|
+
- CHANGELOG.md
|
245
251
|
- Gemfile
|
246
252
|
- Gemfile.lock
|
247
253
|
- README.rdoc
|
@@ -275,37 +281,31 @@ files:
|
|
275
281
|
- spec/stores/local_spec.rb
|
276
282
|
- spec/stores/s3_spec.rb
|
277
283
|
homepage: https://github.com/rightscale/right_publish
|
278
|
-
licenses:
|
284
|
+
licenses:
|
279
285
|
- Proprietary
|
280
286
|
post_install_message:
|
281
287
|
rdoc_options: []
|
282
|
-
|
283
|
-
require_paths:
|
288
|
+
require_paths:
|
284
289
|
- lib
|
285
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
290
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
286
291
|
none: false
|
287
|
-
requirements:
|
288
|
-
- -
|
289
|
-
- !ruby/object:Gem::Version
|
290
|
-
|
291
|
-
segments:
|
292
|
+
requirements:
|
293
|
+
- - ! '>='
|
294
|
+
- !ruby/object:Gem::Version
|
295
|
+
version: '0'
|
296
|
+
segments:
|
292
297
|
- 0
|
293
|
-
|
294
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
298
|
+
hash: 2556348436835479702
|
299
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
295
300
|
none: false
|
296
|
-
requirements:
|
297
|
-
- -
|
298
|
-
- !ruby/object:Gem::Version
|
299
|
-
|
300
|
-
segments:
|
301
|
-
- 0
|
302
|
-
version: "0"
|
301
|
+
requirements:
|
302
|
+
- - ! '>='
|
303
|
+
- !ruby/object:Gem::Version
|
304
|
+
version: '0'
|
303
305
|
requirements: []
|
304
|
-
|
305
306
|
rubyforge_project:
|
306
|
-
rubygems_version: 1.8.
|
307
|
+
rubygems_version: 1.8.23
|
307
308
|
signing_key:
|
308
309
|
specification_version: 3
|
309
310
|
summary: Package publishing and indexing tool
|
310
311
|
test_files: []
|
311
|
-
|