inspec/lib/resources/command.rb

46 lines
831 B
Ruby
Raw Normal View History

# encoding: utf-8
# copyright: 2015, Vulcano Security GmbH
2015-10-06 16:55:44 +00:00
# author: Dominik Richter
# author: Christoph Hartmann
2015-07-15 13:15:18 +00:00
# license: All rights reserved
2015-10-21 17:30:01 +00:00
# Usage:
# describe command('ls -al /') do
# it { should exist }
# its(:stdout) { should match /bin/ }
# its(:stderr) { should match /No such file or directory/ }
# its(:exit_status) { should eq 0 }
# end
2015-09-14 12:58:39 +00:00
class Cmd < Vulcano.resource(1)
name 'command'
def initialize(cmd)
@command = cmd
end
def result
@result ||= vulcano.backend.run_command(@command)
end
def stdout
result.stdout
end
def stderr
result.stderr
end
def exit_status
result.exit_status.to_i
end
def exist?
2015-10-05 21:46:33 +00:00
res = vulcano.backend.run_command("type \"#{@command}\" > /dev/null")
res.exit_status.to_i == 0
end
def to_s
"Command #{@command}"
end
end