lib/capistrano/tasks/faster_assets.rake in capistrano-faster-assets-1.0.1 vs lib/capistrano/tasks/faster_assets.rake in capistrano-faster-assets-1.0.2

- old
+ new

@@ -15,11 +15,11 @@ task :precompile do on roles(fetch(:assets_roles)) do within release_path do with rails_env: fetch(:rails_env) do begin - # find the most recent release + # find the most recent release latest_release = capture(:ls, '-xr', releases_path).split[1] # precompile if this is the first deploy raise PrecompileRequired unless latest_release @@ -27,11 +27,17 @@ # precompile if the previous deploy failed to finish precompiling execute(:ls, latest_release_path.join('assets_manifest_backup')) rescue raise(PrecompileRequired) fetch(:assets_dependencies).each do |dep| + release = release_path.join(dep) + latest = latest_release_path.join(dep) + + # skip if both directories/files do not exist + next if [release, latest].map{|d| test "[ -e #{d} ]"}.uniq == [false] + # execute raises if there is a diff - execute(:diff, '-Nqr', release_path.join(dep), latest_release_path.join(dep)) rescue raise(PrecompileRequired) + execute(:diff, '-Nqr', release, latest) rescue raise(PrecompileRequired) end info("Skipping asset precompile, no asset diff found") # copy over all of the assets from the last release