diff options
| author | Daniel Bovensiepen <[email protected]> | 2014-04-20 05:39:40 +0800 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2014-04-20 05:39:40 +0800 |
| commit | 874bec2af5800b0847d702999efbe796b1c20cfa (patch) | |
| tree | 1caf87feca38136587e33c12e0564da5650e0031 /tasks/mruby_build_gem.rake | |
| parent | 44cc51fef7b68f2b93a5c51d4da9778ca43fa80e (diff) | |
| download | mruby-874bec2af5800b0847d702999efbe796b1c20cfa.tar.gz mruby-874bec2af5800b0847d702999efbe796b1c20cfa.zip | |
Implement :checksum_hash mrbgem option.
This allows to use a mgem with a specific checksum hash.
The following modification were necessary to implement this
function:
- add run_checkout build command to use 'git checkout'
- skip shallow copy in case checksum_hash is used
- make 'master' the default branch if branch isn't defined
Diffstat (limited to 'tasks/mruby_build_gem.rake')
| -rw-r--r-- | tasks/mruby_build_gem.rake | 14 |
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 |
