From: Luke Kanies <[email protected]>

This extends the catalog select action to be able to return more than a single
type, as well as supporting both programmatic and human focused rendering of
the return value.

Reviewed-By: Daniel Pittman <[email protected]>
---
 lib/puppet/face/catalog/select.rb |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/lib/puppet/face/catalog/select.rb 
b/lib/puppet/face/catalog/select.rb
index ba27117..a8ecd82 100644
--- a/lib/puppet/face/catalog/select.rb
+++ b/lib/puppet/face/catalog/select.rb
@@ -2,9 +2,25 @@
 Puppet::Face.define(:catalog, '0.0.1') do
   action :select do
     when_invoked do |host, type, options|
+      # REVISIT: Eventually, type should have a default value that triggers
+      # the non-specific behaviour.  For now, though, this will do.
+      # --daniel 2011-05-03
       catalog = Puppet::Resource::Catalog.indirection.find(host)
 
-      catalog.resources.reject { |res| res.type != type }.each { |res| puts 
res }
+      if type == '*'
+        catalog.resources
+      else
+        type = type.downcase
+        catalog.resources.reject { |res| res.type.downcase != type }
+      end
+    end
+
+    when_rendering :for_humans do |value|
+      if value.nil? then
+        "no matching resources found"
+      else
+        value.map {|x| x.to_s }.join("\n")
+      end
     end
   end
 end
-- 
1.7.5

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to