rearrange and simplify things for the most common use case

This commit is contained in:
John Bintz 2011-06-30 23:16:16 -04:00
parent 3ce23fab9f
commit 128a393a61
4 changed files with 33 additions and 23 deletions

19
README.md Normal file
View File

@ -0,0 +1,19 @@
Reapply your Puppet configs automatically using Guard! Awesome!
``` ruby
guard 'puppet', :verbose => true, :manifest => 'manifests/site.pp' do
watch(%r{^(manifests|modules)})
end
```
It's assumed your configs are all in the current folder, which is the
equivalent of `--confdir=$PWD` at the command line. Otherwise,
there's not much use of using Guard with Puppet. :)
Two options so far:
* `:verbose`: Show more output from Puppet (default: `true`)
* `:manifest`: The main manifest file to run (default: `manifests/site.pp`)
Bugs and fixes? You know the drill.

View File

@ -8,7 +8,10 @@ module Guard
attr_reader :options attr_reader :options
def initialize(options) def initialize(options)
@options = options @options = {
:verbose => true,
:manifest => 'manifests/site.pp'
}.merge(options)
end end
def run def run
@ -18,12 +21,8 @@ module Guard
end end
def command_line_params def command_line_params
command = [ "apply" ] command = [ "apply", %{--confdir="#{Dir.pwd}"} ]
command << "-v" if @options[:verbose] command << "-v" if @options[:verbose]
if @options[:config_dir]
@options[:config_dir] = Dir.pwd if @options[:config_dir] == true
command << %{--confdir="#{@options[:config_dir]}"} if @options[:config_dir]
end
command << @options[:manifest] if @options[:manifest] command << @options[:manifest] if @options[:manifest]
command command
end end

View File

@ -0,0 +1,4 @@
guard 'puppet' do
watch(%r{^(manifests|modules)})
end

View File

@ -9,31 +9,19 @@ describe Guard::Puppet::Runner do
subject { runner.command_line_params } subject { runner.command_line_params }
context 'default' do context 'default' do
it { should == [ 'apply' ] } it { should == [ 'apply', %{--confdir="#{Dir.pwd}"}, '-v', 'manifests/site.pp' ] }
end end
context 'verbose' do context 'not verbose' do
let(:options) { { :verbose => true } } let(:options) { { :verbose => false } }
it { should == [ 'apply', '-v' ] } it { should == [ 'apply', %{--confdir="#{Dir.pwd}"}, 'manifests/site.pp' ] }
end
context 'config dir with path' do
let(:options) { { :config_dir => '/123' } }
it { should == [ 'apply', '--confdir="/123"' ] }
end
context 'config dir with true' do
let(:options) { { :config_dir => true } }
it { should == [ 'apply', %{--confdir="#{Dir.pwd}"} ] }
end end
context 'manifest' do context 'manifest' do
let(:options) { { :manifest => '123' } } let(:options) { { :manifest => '123' } }
it { should == [ 'apply', '123' ] } it { should == [ 'apply', %{--confdir="#{Dir.pwd}"}, '-v', '123' ] }
end end
end end