]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/chef/libraries/remote_directory.rb
Rebuild assets when the configuration changes
[chef.git] / cookbooks / chef / libraries / remote_directory.rb
index 97adee117e4d91720ac2de5cb1d3ed5a9432c949..959eb29409445514cf376d133d26cdadfbb7e83c 100644 (file)
@@ -4,22 +4,23 @@ class Chef
       def action_create
         super
         Chef::Log.debug("Doing a remote recursive directory transfer for #{@new_resource}")
       def action_create
         super
         Chef::Log.debug("Doing a remote recursive directory transfer for #{@new_resource}")
-          
+
         files_transferred = Set.new
         files_to_transfer.each do |cookbook_file_relative_path|
           create_cookbook_file(cookbook_file_relative_path)
           files_transferred << ::File.dirname(::File.join(@new_resource.path, cookbook_file_relative_path))
           files_transferred << ::File.join(@new_resource.path, cookbook_file_relative_path)
         end
         files_transferred = Set.new
         files_to_transfer.each do |cookbook_file_relative_path|
           create_cookbook_file(cookbook_file_relative_path)
           files_transferred << ::File.dirname(::File.join(@new_resource.path, cookbook_file_relative_path))
           files_transferred << ::File.join(@new_resource.path, cookbook_file_relative_path)
         end
-        if @new_resource.purge
-          files_to_purge = Set.new(
-                                   Dir.glob(::File.join(@new_resource.path, '**', '*'), ::File::FNM_DOTMATCH).select do |name|
-                                     name !~ /(?:^|#{Regexp.escape(::File::SEPARATOR)})\.\.?$/
-                                   end
-                                   )
-          files_to_purge = files_to_purge - files_transferred
-          purge_unmanaged_files(files_to_purge)
-        end
+
+        return unless @new_resource.purge
+
+        files_to_purge = Set.new(
+          Dir.glob(::File.join(@new_resource.path, "**", "*"), ::File::FNM_DOTMATCH).select do |name|
+            name !~ /(?:^|#{Regexp.escape(::File::SEPARATOR)})\.\.?$/
+          end
+        )
+        files_to_purge -= files_transferred
+        purge_unmanaged_files(files_to_purge)
       end
     end
   end
       end
     end
   end