nagi 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -15,7 +15,7 @@ A typical plugin looks like this:
15
15
  #!/usr/bin/env ruby
16
16
 
17
17
  require 'nagi'
18
- require Resolv
18
+ require 'resolv'
19
19
 
20
20
  Nagi do
21
21
  name 'check_dns'
@@ -32,7 +32,7 @@ Nagi do
32
32
  end
33
33
 
34
34
  if args[:ip] and ip != args[:ip]
35
- critical "#{args[:hostname]} resolves to #{ip}, expected #{args[:ip]}
35
+ critical "#{args[:hostname]} resolves to #{ip}, expected #{args[:ip]}"
36
36
  else
37
37
  ok "#{args[:hostname]} resolves to #{ip}"
38
38
  end
data/lib/nagi/utility.rb CHANGED
@@ -3,7 +3,15 @@ module Nagi
3
3
  module_function
4
4
 
5
5
  def execute(command)
6
- output, status = Open3.capture2e("/bin/bash -o pipefail -c '#{command}'")
6
+ command = command.gsub(/'/, "\'")
7
+ if defined?(Open3.capture2)
8
+ output, status = Open3.capture2e("/bin/bash -o pipefail -c '#{command}'")
9
+ else
10
+ IO.popen("/bin/bash -o pipefail -c '#{command}' 2>&1") do |io|
11
+ output = io.read
12
+ end
13
+ status = $?
14
+ end
7
15
  raise "Shell failure, '#{output.gsub(/^\/bin\/bash: /, '').strip}'" if status.exitstatus != 0
8
16
  return output.strip
9
17
  end
data/lib/nagi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Nagi
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -73,7 +73,7 @@ describe Nagi::OptionParser do
73
73
 
74
74
  describe '.switch' do
75
75
  it 'adds a switch' do
76
- @parser.switch('name', '-t', '--test TEST',) do |value|
76
+ @parser.switch('name', '-t', '--test TEST') do |value|
77
77
  end
78
78
 
79
79
  @parser.top.list[-1].short[0].should eq '-t'
@@ -1,6 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'Nagi::Utility::execute' do
4
+ it 'handles special characters correctly' do
5
+ Nagi::Utility.execute("echo 'x'").should eq 'x'
6
+ Nagi::Utility.execute('echo "y"').should eq 'y'
7
+ end
8
+
4
9
  it 'raises exception on non-zero status' do
5
10
  lambda { Nagi::Utility.execute('exit 1') }.should raise_error StandardError
6
11
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nagi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-18 00:00:00.000000000 Z
12
+ date: 2012-05-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70154071720240 !ruby/object:Gem::Requirement
16
+ requirement: &70354822658820 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70154071720240
24
+ version_requirements: *70354822658820
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70154071719820 !ruby/object:Gem::Requirement
27
+ requirement: &70354822658200 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70154071719820
35
+ version_requirements: *70354822658200
36
36
  description: A DSL for writing Nagios plugins
37
37
  email:
38
38
  - erik@bengler.no