Skip to content

Instantly share code, notes, and snippets.

@idoo
Created June 3, 2013 08:01
Show Gist options
  • Save idoo/5696707 to your computer and use it in GitHub Desktop.
Save idoo/5696707 to your computer and use it in GitHub Desktop.
capistrano assets
namespace :assets do
desc "Figure out modified assets."
task :determine_modified_assets, :roles => :assets_role, :except => { :no_release => true } do
set :updated_assets, capture("find #{latest_release}/app/assets -type d -name .git -prune -o -mmin -#{max_asset_age} -type f -print", :except => { :no_release => true }).split
end
desc "Remove callback for asset precompiling unless assets were updated in most recent git commit."
task :conditionally_precompile, :roles => :assets_role, :except => { :no_release => true } do
if(updated_assets.empty?)
callback = callbacks[:after].find{|c| c.source == "deploy:assets:precompile" }
callbacks[:after].delete(callback)
logger.info("Skipping asset precompiling, no updated assets.")
else
logger.info("#{updated_assets.length} updated assets. Will precompile.")
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment