mirror of
https://github.com/inspec/inspec
synced 2024-11-16 01:38:03 +00:00
27 lines
731 B
Ruby
27 lines
731 B
Ruby
# encoding: utf-8
|
|
|
|
require 'digest'
|
|
|
|
module Vulcano::Plugins
|
|
class Backend
|
|
autoload :FileCommon, 'vulcano/plugins/backend_file_common'
|
|
autoload :LinuxFile, 'vulcano/plugins/backend_linux_file'
|
|
autoload :OSCommon, 'vulcano/plugins/backend_os_common'
|
|
CommandResult = Struct.new(:stdout, :stderr, :exit_status)
|
|
|
|
def self.name(name)
|
|
Vulcano::Plugins::Backend.__register(name, self)
|
|
end
|
|
|
|
# raise errors for all missing methods
|
|
%w{ file run_command os }.each do |m|
|
|
define_method(m.to_sym) do |*_|
|
|
fail NotImplementedError, "Backend must implement the #{m}() method."
|
|
end
|
|
end
|
|
|
|
def self.__register(id, obj)
|
|
Vulcano::Backend.registry[id] = obj
|
|
end
|
|
end
|
|
end
|