summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Kanies <luke@puppetlabs.com>2011-02-22 17:38:04 -0800
committerLuke Kanies <luke@puppetlabs.com>2011-02-22 17:38:04 -0800
commit368210e8a8a35cf2cae509b1d357337f9958cdff (patch)
treebe61ef9b3e9b9f2d2c76cba8d40e67194245929e
parentc2715c0f20d916de0284e2d161eb5de32e508244 (diff)
downloadpuppet-368210e8a8a35cf2cae509b1d357337f9958cdff.tar.gz
puppet-368210e8a8a35cf2cae509b1d357337f9958cdff.tar.xz
puppet-368210e8a8a35cf2cae509b1d357337f9958cdff.zip
Adding a simple "config" app
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
-rw-r--r--lib/puppet/application/config.rb4
-rw-r--r--lib/puppet/interface/config.rb10
-rw-r--r--spec/unit/application/config_spec.rb10
-rw-r--r--spec/unit/interface/config_spec.rb27
4 files changed, 51 insertions, 0 deletions
diff --git a/lib/puppet/application/config.rb b/lib/puppet/application/config.rb
new file mode 100644
index 000000000..90c5f53c4
--- /dev/null
+++ b/lib/puppet/application/config.rb
@@ -0,0 +1,4 @@
+require 'puppet/application/interface_base'
+
+class Puppet::Application::Config < Puppet::Application::InterfaceBase
+end
diff --git a/lib/puppet/interface/config.rb b/lib/puppet/interface/config.rb
new file mode 100644
index 000000000..501099a64
--- /dev/null
+++ b/lib/puppet/interface/config.rb
@@ -0,0 +1,10 @@
+require 'puppet/interface'
+
+Puppet::Interface.new(:config) do
+ action(:print) do |*args|
+ if name
+ Puppet.settings[:configprint] = args.join(",")
+ end
+ Puppet.settings.print_config_options
+ end
+end
diff --git a/spec/unit/application/config_spec.rb b/spec/unit/application/config_spec.rb
new file mode 100644
index 000000000..3d894a89c
--- /dev/null
+++ b/spec/unit/application/config_spec.rb
@@ -0,0 +1,10 @@
+#!/usr/bin/env ruby
+
+require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
+require 'puppet/application/config'
+
+describe Puppet::Application::Config do
+ it "should be a subclass of Puppet::Application::InterfaceBase" do
+ Puppet::Application::Config.superclass.should equal(Puppet::Application::InterfaceBase)
+ end
+end
diff --git a/spec/unit/interface/config_spec.rb b/spec/unit/interface/config_spec.rb
new file mode 100644
index 000000000..79c65f2ac
--- /dev/null
+++ b/spec/unit/interface/config_spec.rb
@@ -0,0 +1,27 @@
+#!/usr/bin/env ruby
+
+require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
+require 'puppet/interface/config'
+
+describe Puppet::Interface.interface(:config) do
+ before do
+ @interface = Puppet::Interface.interface(:config)
+ end
+
+ it "should be a subclass of 'Indirection'" do
+ @interface.should be_instance_of(Puppet::Interface)
+ end
+
+ it "should use Settings#print_config_options when asked to print" do
+ Puppet.settings.stubs(:puts)
+ Puppet.settings.expects(:print_config_options)
+ @interface.print
+ end
+
+ it "should set 'configprint' to all desired values and call print_config_options when a specific value is provided" do
+ Puppet.settings.stubs(:puts)
+ Puppet.settings.expects(:print_config_options)
+ @interface.print("libdir", "ssldir")
+ Puppet.settings[:configprint].should == "libdir,ssldir"
+ end
+end