From 622c9d984172d5de0036928df25b68d09a4d955b Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 16 Jan 2015 11:49:25 +0100 Subject: [PATCH] Add script/prepare_deploy to add fingerprint to js and css files --- script/prepare_deploy | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 script/prepare_deploy diff --git a/script/prepare_deploy b/script/prepare_deploy new file mode 100755 index 00000000..f5dad55b --- /dev/null +++ b/script/prepare_deploy @@ -0,0 +1,26 @@ +#!/usr/bin/env ruby + +require 'digest' +require 'fileutils' + +def fingerprint(file_path) + # file_path is relative to public + public_file_path = "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')