ruby-quilt 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|