@@ -100,16 +100,16 @@ def mrbgem_rake
100100 <<MRBGEM_RAKE
101101require_relative 'mrblib/#{ @name } /version'
102102
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|
107104 spec.bins = ['#{ @name } ']
108- spec.version = #{ Util . camelize ( @name ) } ::VERSION
109-
110105 spec.add_dependency 'mruby-print', :core => 'mruby-print'
111106 spec.add_dependency 'mruby-mtest', :mgem => 'mruby-mtest'
112107end
108+
109+ spec.license = 'MIT'
110+ spec.author = 'MRuby Developer'
111+ spec.summary = '#{ @name } '
112+ spec.version = #{ Util . camelize ( @name ) } ::VERSION
113113MRBGEM_RAKE
114114 end
115115
@@ -304,6 +304,9 @@ def docker_compose_yml
304304shell:
305305 <<: *defaults
306306 command: bash
307+ release:
308+ <<: *defaults
309+ command: rake release
307310DOCKER_COMPOSE_YML
308311 end
309312
@@ -330,6 +333,13 @@ def rakefile
330333Dir.chdir(mruby_root)
331334load "\# {mruby_root}/Rakefile"
332335
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+
333343desc "compile binary"
334344task :compile => [:all] do
335345
@@ -386,11 +396,43 @@ def clean_env(envs)
386396 sh "rake deep_clean"
387397end
388398
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+
389432namespace :local do
390- desc "show help "
433+ desc "show version "
391434 task :version do
392- require_relative 'mrblib/mruby-cli/version'
393- puts "mruby-cli \# {MRubyCLI::Version::VERSION}"
435+ puts "\# {APP_NAME} \# {APP_VERSION}"
394436 end
395437end
396438
0 commit comments