summaryrefslogtreecommitdiffhomepage
path: root/tasks/mruby_build_gem.rake
diff options
context:
space:
mode:
Diffstat (limited to 'tasks/mruby_build_gem.rake')
-rw-r--r--tasks/mruby_build_gem.rake14
1 files changed, 13 insertions, 1 deletions
diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake
index 42d0d6b89..766266680 100644
--- a/tasks/mruby_build_gem.rake
+++ b/tasks/mruby_build_gem.rake
@@ -59,6 +59,9 @@ module MRuby
url = params[:git]
gemdir = "#{gem_clone_dir}/#{url.match(/([-\w]+)(\.[-\w]+|)$/).to_a[1]}"
+ # by default the 'master' branch is used
+ branch = params[:branch] ? params[:branch] : 'master'
+
if File.exist?(gemdir)
if $pull_gems
git.run_pull gemdir, url
@@ -67,10 +70,19 @@ module MRuby
end
else
options = [params[:options]] || []
- options << "--branch \"#{params[:branch]}\"" if params[:branch]
+ options << "--branch \"#{branch}\""
+ options << "--depth 1" unless params[:checksum_hash]
FileUtils.mkdir_p "#{gem_clone_dir}"
git.run_clone gemdir, url, options
end
+
+ if params[:checksum_hash]
+ # Jump to the specified commit
+ git.run_checkout gemdir, params[:checksum_hash]
+ else
+ # Jump to the top of the branch
+ git.run_checkout gemdir, branch
+ end
else
fail "unknown gem option #{params}"
end