travis-web/script/prepare_deploy
2015-01-16 12:01:21 +01:00

28 lines
827 B
Ruby
Executable File

#!/usr/bin/env ruby
require 'digest'
require 'fileutils'
def fingerprint(file_path)
# file_path is relative to public
public_file_path = "public/#{file_path}"
return unless File.exists?(public_file_path)
digest = Digest::MD5.file public_file_path
extension = File.extname(file_path)
basename = File.basename(file_path, extension)
dirname = File.dirname(file_path)
new_file_path = "#{dirname}/#{basename}-#{digest}#{extension}"
new_public_file_path = "public/#{new_file_path}"
FileUtils.mv(public_file_path, new_public_file_path)
index_content = File.read("public/index.html")
index_content.gsub!(file_path, new_file_path)
File.open("public/index.html", "w") { |f|
f.write index_content
}
end
fingerprint('scripts/app.js')
fingerprint('styles/app.css')
fingerprint('styles/dashboard.css')