@@ -100,16 +100,16 @@ def mrbgem_rake
100
100
<<MRBGEM_RAKE
101
101
require_relative 'mrblib/#{ @name } /version'
102
102
103
- MRuby::Gem::Specification.new('#{ @name } ') do |spec|
104
- spec.license = 'MIT'
105
- spec.author = 'MRuby Developer'
106
- spec.summary = '#{ @name } '
103
+ spec = MRuby::Gem::Specification.new('#{ @name } ') do |spec|
107
104
spec.bins = ['#{ @name } ']
108
- spec.version = #{ Util . camelize ( @name ) } ::VERSION
109
-
110
105
spec.add_dependency 'mruby-print', :core => 'mruby-print'
111
106
spec.add_dependency 'mruby-mtest', :mgem => 'mruby-mtest'
112
107
end
108
+
109
+ spec.license = 'MIT'
110
+ spec.author = 'MRuby Developer'
111
+ spec.summary = '#{ @name } '
112
+ spec.version = #{ Util . camelize ( @name ) } ::VERSION
113
113
MRBGEM_RAKE
114
114
end
115
115
@@ -304,6 +304,9 @@ def docker_compose_yml
304
304
shell:
305
305
<<: *defaults
306
306
command: bash
307
+ release:
308
+ <<: *defaults
309
+ command: rake release
307
310
DOCKER_COMPOSE_YML
308
311
end
309
312
@@ -330,6 +333,13 @@ def rakefile
330
333
Dir.chdir(mruby_root)
331
334
load "\# {mruby_root}/Rakefile"
332
335
336
+
337
+ load File.join(File.expand_path(File.dirname(__FILE__)), "mrbgem.rake")
338
+
339
+ current_gem = MRuby::Gem.current
340
+ app_version = MRuby::Gem.current.version
341
+ APP_VERSION = (app_version.nil? || app_version.empty?) ? "unknown" : app_version
342
+
333
343
desc "compile binary"
334
344
task :compile => [:all] do
335
345
@@ -386,11 +396,43 @@ def clean_env(envs)
386
396
sh "rake deep_clean"
387
397
end
388
398
399
+ desc "generate a release tarball"
400
+ task :release => :compile do
401
+ require 'tmpdir'
402
+
403
+ # since we're in the mruby/
404
+ release_dir = "releases/v\# {APP_VERSION}"
405
+ release_path = Dir.pwd + "/../\# {release_dir}"
406
+ app_name = "\# {APP_NAME}-\# {APP_VERSION}"
407
+ FileUtils.mkdir_p(release_path)
408
+
409
+ Dir.mktmpdir do |tmp_dir|
410
+ Dir.chdir(tmp_dir) do
411
+ MRuby.each_target do |target|
412
+ next if name == "host"
413
+
414
+ arch = name
415
+ bin = "\# {build_dir}/bin/\# {exefile(APP_NAME)}"
416
+ FileUtils.mkdir_p(name)
417
+ FileUtils.cp(bin, name)
418
+
419
+ Dir.chdir(arch) do
420
+ arch_release = "\# {app_name}-\# {arch}"
421
+ puts "Writing \# {release_dir}/\# {arch_release}.tgz"
422
+ `tar czf \# {release_path}/\# {arch_release}.tgz *`
423
+ end
424
+ end
425
+
426
+ puts "Writing \# {release_dir}/\# {app_name}.tgz"
427
+ `tar czf \# {release_path}/\# {app_name}.tgz *`
428
+ end
429
+ end
430
+ end
431
+
389
432
namespace :local do
390
- desc "show help "
433
+ desc "show version "
391
434
task :version do
392
- require_relative 'mrblib/mruby-cli/version'
393
- puts "mruby-cli \# {MRubyCLI::Version::VERSION}"
435
+ puts "\# {APP_NAME} \# {APP_VERSION}"
394
436
end
395
437
end
396
438
0 commit comments