luban 0.3.6 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8546945428b7a773b5c4488104e348660d4f4a3
4
- data.tar.gz: 532c77addbc05dffb963df6352019cc5e0c9a8d8
3
+ metadata.gz: 0849b76c82b53782709b36c5e7a9fa7d6e150489
4
+ data.tar.gz: dd9f9ef9b8dc3872a38b3fba9b4b10bd730cb248
5
5
  SHA512:
6
- metadata.gz: 6c0ba35310c0499275964be69e37a924042aa33407172aace17657e54ce1f5ba52eff724c7eb9605c2066d1e06780c35a94adece80e31a71e311433c1ffc8082
7
- data.tar.gz: f5d9a31ad49538f8ccc5f977bda092558e6c052a7f46eb07e92a470a91ae30973e63fbd1d1902d9f1b8211f49c750e5686d9456091c752c7bae900ac843916ac
6
+ metadata.gz: 3ea498ab032c5cf463d7cb2f3719ba2a96d0921474977ffbaf9889ccb9fae3cfe3402c5e67dcfa3127674204478a2812bb9b6c32a572fcaabddf5eb96ad435b4
7
+ data.tar.gz: a8606aa61c94693410e1a7d2f5a8c646732c532d29efa43580d02fc87604df0b48516fe6ab9526a0770c37d5be80379bc4620cc4b7812fc63806cecf359403ae
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Change log
2
2
 
3
+ ## Version 0.4.0 (May 11, 2016)
4
+
5
+ Minor enhancements:
6
+ * Upgraded Bundler for Ruby to version 1.12.3
7
+ * Used OpenSSL ftp site to download its source code package
8
+ * Optimized md5 signature generation for both source code package as well as gems downloaded
9
+
10
+ Bug fixes:
11
+ * Fixed a bug in md5 calculation for a given file
12
+ * Fixed broken installer for Bundler
13
+
3
14
  ## Version 0.3.6 (May 09, 2016)
4
15
 
5
16
  Minor enhancements:
@@ -158,9 +158,18 @@ module Luban
158
158
  info "Package gems bundled in Gemfile"
159
159
  execute(:bundle, :package, "--all --quiet")
160
160
  end
161
- gem_files = capture(:ls, '-xt', gems_cache).split
161
+ gem_files = capture(:ls, '-xt', gems_cache.join('*.gem')).split
162
162
  gem_files.each do |gem_file|
163
- gems[gem_file] = md5_for_file(gems_cache.join(gem_file))
163
+ gem_name = File.basename(gem_file)
164
+ md5_file = "#{gem_file}.md5"
165
+ gems[gem_name] =
166
+ if file?(md5_file)
167
+ gems[gem_name] = capture(:cat, md5_file)
168
+ else
169
+ md5_for_file(gem_file).tap { |md5|
170
+ execute(:echo, "#{md5} > #{md5_file}")
171
+ }
172
+ end
164
173
  end
165
174
  end
166
175
  bundled_gems[:gems_cache] = workspace_path.join(gems_cache)
@@ -99,8 +99,8 @@ module Luban
99
99
  end
100
100
 
101
101
  def install(args:, opts:)
102
- md5 = download_package(args: args, opts: opts)[:md5]
103
- install_package(args: args, opts: opts.merge(src_file_md5: md5))
102
+ download_package(args: args, opts: opts)
103
+ install_package(args: args, opts: opts)
104
104
  end
105
105
 
106
106
  def install_all(args:, opts:)
@@ -67,13 +67,6 @@ module Luban
67
67
  end
68
68
  end
69
69
 
70
- def compose_build_env_variables
71
- build_env_vars.inject({}) do |vars, (k, v)|
72
- vars[k] = "'#{v.join(' ').strip}'" unless v.all?(&:empty?)
73
- vars
74
- end
75
- end
76
-
77
70
  def configure_build_options
78
71
  @configure_opts = default_configure_opts | (task.opts.__remaining__ || [])
79
72
  @configure_opts.unshift(install_prefix)
@@ -4,7 +4,9 @@ module Luban
4
4
  class Installer
5
5
  class InstallFailure < Luban::Deployment::Error; end
6
6
 
7
- def src_file_md5; task.opts.src_file_md5; end
7
+ def src_file_md5
8
+ @src_file_md5 ||= capture(:cat, src_md5_file_path)
9
+ end
8
10
 
9
11
  def required_packages
10
12
  @required_packages ||=
@@ -36,13 +38,13 @@ module Luban
36
38
  def download
37
39
  info "Downloading #{package_full_name}"
38
40
  if downloaded?
39
- update_result "Skipped! #{package_full_name} has been downloaded ALREADY.",
40
- status: :skipped, md5: md5_for_file(src_file_path)
41
+ create_src_md5_file unless file?(src_md5_file_path)
42
+ update_result "Skipped! #{package_full_name} has been downloaded ALREADY."
41
43
  else
42
44
  download_package!
43
45
  if downloaded?
44
- update_result "Successfully downloaded #{package_full_name}.",
45
- md5: md5_for_file(src_file_path)
46
+ create_src_md5_file unless file?(src_md5_file_path)
47
+ update_result "Successfully downloaded #{package_full_name}."
46
48
  else
47
49
  update_result "Failed to download #{package_full_name}. " +
48
50
  "Please check install log for details: #{install_log_file_path}",
@@ -178,6 +180,25 @@ module Luban
178
180
  bootstrap_download
179
181
  validate_download_url
180
182
  end
183
+ download_required_packages(:before_install)
184
+ end
185
+
186
+ def after_download
187
+ download_required_packages(:after_install)
188
+ end
189
+
190
+ def download_required_packages(type)
191
+ manage_required_packages(type, :download)
192
+ end
193
+
194
+ def manage_required_packages(type, cmd)
195
+ required_packages[type].each do |d|
196
+ self.class.worker_class(:installer, package: d.name).new(
197
+ config: config, backend: backend,
198
+ cmd: cmd, args: {},
199
+ opts: d.options.merge(name: d.name, version: d.version, current: true, parent: self)
200
+ ).run
201
+ end
181
202
  end
182
203
 
183
204
  def before_install
@@ -191,13 +212,7 @@ module Luban
191
212
  end
192
213
 
193
214
  def install_required_packages(type)
194
- required_packages[type].each do |d|
195
- self.class.worker_class(:installer, package: d.name).new(
196
- config: config, backend: backend,
197
- cmd: :install, args: {},
198
- opts: d.options.merge(name: d.name, version: d.version, current: true, parent: self)
199
- ).run
200
- end
215
+ manage_required_packages(type, :install)
201
216
  end
202
217
 
203
218
  def validate_download_url!
@@ -210,12 +225,7 @@ module Luban
210
225
  def install!
211
226
  upload_package
212
227
  uncompress_package
213
- within build_path do
214
- #with compose_build_env_variables do
215
- # build_package
216
- #end
217
- build_package
218
- end
228
+ build_package
219
229
  cleanup_build!
220
230
  end
221
231
 
@@ -299,6 +309,10 @@ module Luban
299
309
  end
300
310
  end
301
311
 
312
+ def create_src_md5_file
313
+ execute(:echo, "#{md5_for_file(src_file_path)} > #{src_md5_file_path}")
314
+ end
315
+
302
316
  def upload_package
303
317
  info "Uploading #{package_full_name} source package"
304
318
  if cached?
@@ -328,9 +342,11 @@ module Luban
328
342
  end
329
343
 
330
344
  def build_package
331
- configure_package
332
- make_package
333
- install_package
345
+ within build_path do
346
+ configure_package
347
+ make_package
348
+ install_package
349
+ end
334
350
  end
335
351
 
336
352
  def configure_package
@@ -20,6 +20,10 @@ module Luban
20
20
  @src_file_path ||= package_downloads_path.join(src_file_name)
21
21
  end
22
22
 
23
+ def src_md5_file_path
24
+ @src_md5_file_path ||= package_downloads_path.join("#{src_file_name}.md5")
25
+ end
26
+
23
27
  def source_repo
24
28
  raise NotImplementedError, "#{self.class.name}#source_repo is an abstract method."
25
29
  end
@@ -78,7 +78,7 @@ module Luban
78
78
  end
79
79
 
80
80
  def md5_for_file(file)
81
- capture(:cat, "#{file} 2>/dev/null | openssl md5")
81
+ capture(:cat, "#{file} 2>/dev/null | openssl md5")[/\h+$/]
82
82
  end
83
83
 
84
84
  def sudo(*args)
@@ -64,6 +64,7 @@ module Luban
64
64
  def uncompress_package; end
65
65
  def configure_package; end
66
66
  def make_package; end
67
+ def build_package; install_package; end
67
68
  def update_binstubs!; end
68
69
 
69
70
  def install_package!
@@ -16,8 +16,7 @@ module Luban
16
16
  default_executable 'openssl'
17
17
 
18
18
  def source_repo
19
- #@source_repo ||= "https://www.openssl.org"
20
- @source_repo ||= "http://www.openssl.org"
19
+ @source_repo ||= "ftp://ftp.openssl.org"
21
20
  end
22
21
 
23
22
  def source_url_root
@@ -47,7 +47,7 @@ module Luban
47
47
 
48
48
  apply_to :all do
49
49
  after_install do
50
- depend_on 'bundler', version: '1.11.2'
50
+ depend_on 'bundler', version: '1.12.3'
51
51
  end
52
52
  end
53
53
 
@@ -1,5 +1,5 @@
1
1
  module Luban
2
2
  module Deployment
3
- VERSION = "0.3.6"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: luban
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rubyist Lei
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-09 00:00:00.000000000 Z
11
+ date: 2016-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: luban-cli