summaryrefslogtreecommitdiff
path: root/task/build_metadata.rake
diff options
context:
space:
mode:
Diffstat (limited to 'task/build_metadata.rake')
-rw-r--r--task/build_metadata.rake37
1 files changed, 25 insertions, 12 deletions
diff --git a/task/build_metadata.rake b/task/build_metadata.rake
index a896ed4801..e06a795259 100644
--- a/task/build_metadata.rake
+++ b/task/build_metadata.rake
@@ -1,20 +1,33 @@
# frozen_string_literal: true
-file "lib/bundler/generated/build_metadata.rb" => [".git/HEAD", ".git/logs/HEAD", __FILE__, :git_hooks] do |t|
- sh "git update-index --assume-unchanged #{t.name}", :verbose => false
+def write_build_metadata(build_metadata)
+ build_metadata_file = "lib/bundler/build_metadata.rb"
+
+ ivars = build_metadata.sort.map do |k, v|
+ " @#{k} = #{BUNDLER_SPEC.send(:ruby_code, v)}"
+ end.join("\n")
+
+ contents = File.read(build_metadata_file)
+ contents.sub!(/^(\s+# begin ivars).+(^\s+# end ivars)/m, "\\1\n#{ivars}\n\\2")
+ File.open(build_metadata_file, "w") {|f| f << contents }
+end
+
+task :build_metadata do
build_metadata = {
- :built_at => BUNDLER_SPEC.date.strftime("%Y-%m-%d"),
- :git_sha => `git rev-parse --short HEAD`.strip,
+ :built_at => BUNDLER_SPEC.date.utc.strftime("%Y-%m-%d"),
+ :git_commit_sha => `git rev-parse --short HEAD`.strip,
:release => Rake::Task["release"].instance_variable_get(:@already_invoked),
}
- File.open(t.name, "w") {|f| f << <<-RUBY }
-# frozen_string_literal: true
-
-module Bundler
- BUILD_METADATA = {
-#{build_metadata.sort.map {|k, v| " #{k.inspect} => #{BUNDLER_SPEC.send(:ruby_code, v)}," }.join("\n")}
- }.freeze
+ write_build_metadata(build_metadata)
end
- RUBY
+
+namespace :build_metadata do
+ task :clean do
+ build_metadata = {
+ :release => false,
+ }
+
+ write_build_metadata(build_metadata)
+ end
end