luban 0.3.6 → 0.4.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.
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