summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2009-11-14 16:21:05 +0100
committerJames Turnbull <james@lovedthanlost.net>2009-11-17 07:29:33 +1100
commit55d8ffaaa3052dd0e8e2915d974d99827a92d61e (patch)
tree4d9b3d078f5bc1dd739a4c942ef1aa052365c8d9
parent236bacc0a2c858ec25a48984e25834b91efc01c5 (diff)
downloadpuppet-55d8ffaaa3052dd0e8e2915d974d99827a92d61e.tar.gz
puppet-55d8ffaaa3052dd0e8e2915d974d99827a92d61e.tar.xz
puppet-55d8ffaaa3052dd0e8e2915d974d99827a92d61e.zip
Fix #2810 - adapt tidy to new FileSet api
In #1469 we changed the FileSet internal api and missed that tidy was still using the old version. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
-rwxr-xr-xlib/puppet/type/tidy.rb11
-rwxr-xr-xspec/unit/type/tidy.rb15
2 files changed, 23 insertions, 3 deletions
diff --git a/lib/puppet/type/tidy.rb b/lib/puppet/type/tidy.rb
index f45171d90..b5ccb3fb1 100755
--- a/lib/puppet/type/tidy.rb
+++ b/lib/puppet/type/tidy.rb
@@ -247,8 +247,15 @@ Puppet::Type.newtype(:tidy) do
def generate
return [] unless stat(self[:path])
- if self[:recurse]
- files = Puppet::FileServing::Fileset.new(self[:path], :recurse => self[:recurse]).files.collect do |f|
+ case self[:recurse]
+ when Integer, Fixnum, Bignum, /^\d+$/
+ parameter = { :recurse => true, :recurselimit => self[:recurse] }
+ when true, :true, :inf
+ parameter = { :recurse => true }
+ end
+
+ if parameter
+ files = Puppet::FileServing::Fileset.new(self[:path], parameter).files.collect do |f|
f == "." ? self[:path] : File.join(self[:path], f)
end
else
diff --git a/spec/unit/type/tidy.rb b/spec/unit/type/tidy.rb
index caf5b22b7..88e2e280a 100755
--- a/spec/unit/type/tidy.rb
+++ b/spec/unit/type/tidy.rb
@@ -7,6 +7,10 @@ tidy = Puppet::Type.type(:tidy)
describe tidy do
before do
Puppet.settings.stubs(:use)
+
+ # for an unknown reason some of these specs fails when run individually
+ # with a failed expectation on File.lstat in the autoloader.
+ File.stubs(:lstat)
end
it "should use :lstat when stating a file" do
@@ -161,7 +165,7 @@ describe tidy do
Puppet::FileServing::Fileset.stubs(:new).returns @fileset
end
- it "should use a Fileset for recursion" do
+ it "should use a Fileset for infinite recursion" do
Puppet::FileServing::Fileset.expects(:new).with("/what/ever", :recurse => true).returns @fileset
@fileset.expects(:files).returns %w{. one two}
@tidy.stubs(:tidy?).returns false
@@ -169,6 +173,15 @@ describe tidy do
@tidy.generate
end
+ it "should use a Fileset for limited recursion" do
+ @tidy[:recurse] = 42
+ Puppet::FileServing::Fileset.expects(:new).with("/what/ever", :recurse => true, :recurselimit => 42).returns @fileset
+ @fileset.expects(:files).returns %w{. one two}
+ @tidy.stubs(:tidy?).returns false
+
+ @tidy.generate
+ end
+
it "should generate a file resource for every file that should be tidied but not for files that should not be tidied" do
@fileset.expects(:files).returns %w{. one two}