ruby-quilt 0.0.5 → 0.0.6
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/quilt.rb +31 -7
- metadata +23 -1
data/lib/quilt.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'logger'
|
2
2
|
require 'json'
|
3
3
|
require 'net/http'
|
4
|
+
require 'popen4'
|
5
|
+
require 'fileutils'
|
4
6
|
|
5
7
|
class Quilt
|
6
8
|
HEADER_KEY = "header"
|
@@ -184,6 +186,7 @@ class Quilt
|
|
184
186
|
port = @config[:remote_port] ? @config[:remote_port].to_i : 80
|
185
187
|
# Fetch the version
|
186
188
|
filename = "#{name}.tgz"
|
189
|
+
version_dir = File.join(@config[:local_path], name)
|
187
190
|
begin
|
188
191
|
Net::HTTP.start(@config[:remote_host].to_s, port) do |http|
|
189
192
|
res = http.get(File.join(@config[:remote_path].to_s, "#{name}.tgz"))
|
@@ -191,7 +194,8 @@ class Quilt
|
|
191
194
|
log_error("no version fetched : #{res.code}")
|
192
195
|
return nil
|
193
196
|
end
|
194
|
-
|
197
|
+
FileUtils.mkdir(version_dir) unless File.exists?(version_dir)
|
198
|
+
open(File.join(version_dir, filename), "wb") do |file|
|
195
199
|
file.write(res.body)
|
196
200
|
end
|
197
201
|
end
|
@@ -200,16 +204,36 @@ class Quilt
|
|
200
204
|
return nil
|
201
205
|
end
|
202
206
|
# Untar the version
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
207
|
+
tar_stdout = nil
|
208
|
+
tar_stderr = nil
|
209
|
+
tar_status =
|
210
|
+
POpen4::popen4("cd #{version_dir} && tar -xzf #{filename} && rm #{filename}") do |stdo, stde, stdi, pid|
|
211
|
+
stdi.close
|
212
|
+
tar_stdout = stdo.read.strip
|
213
|
+
tar_stderr = stde.read.strip
|
214
|
+
end
|
215
|
+
if (!tar_status.exitstatus.zero?)
|
216
|
+
log_error("unable to untar package: cd #{version_dir} && tar -xzf #{filename} && rm #{filename}")
|
217
|
+
log_error("stdout: #{tar_stdout}")
|
218
|
+
log_error("stderr: #{tar_stderr}")
|
219
|
+
begin
|
220
|
+
FileUtils.rm_r(version_dir)
|
221
|
+
rescue Exception => e
|
222
|
+
# do nothing
|
223
|
+
end
|
208
224
|
return nil
|
209
225
|
end
|
210
|
-
`cd #{@config[:local_path]} && rm #{filename}`
|
211
226
|
# Load the version
|
212
227
|
@versions[name] = load_version(@config[:local_path], name)
|
228
|
+
if (!@versions[name])
|
229
|
+
begin
|
230
|
+
FileUtils.rm_r(version_dir)
|
231
|
+
rescue Exception => e
|
232
|
+
# do nothing
|
233
|
+
end
|
234
|
+
return nil
|
235
|
+
end
|
236
|
+
@versions[name]
|
213
237
|
end
|
214
238
|
|
215
239
|
def stitch(selector, version_name, prefix = :default)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-quilt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -33,6 +33,28 @@ dependencies:
|
|
33
33
|
- - ! '>='
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 1.6.6
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: popen4
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0.1'
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.1.2
|
47
|
+
type: :runtime
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.1'
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: 0.1.2
|
36
58
|
- !ruby/object:Gem::Dependency
|
37
59
|
name: rake
|
38
60
|
requirement: !ruby/object:Gem::Requirement
|