Sha256: 5cf783e269e63b00a22477c1ba7d4c114a0715ad3391051afe0f2c60a0de4f08

Contents?: true

Size: 1.24 KB

Versions: 10

Compression:

Stored size: 1.24 KB

Contents

require 'rubygems'
require 'rake'
require 'mkmf'

desc "Building event log dll"

def ensure_present(commands)
  commands.each do |c|
    unless find_executable c
      warn "Could not find #{c}. Windows Event Logging will not correctly function."
    end
  end
end


EVT_MC_FILE = 'chef-log.man'
EVT_RC_FILE = 'chef-log.rc'
EVT_RESOURCE_OBJECT = 'resource.o'
EVT_SHARED_OBJECT = 'chef-log.dll'
MC = 'windmc'
RC = 'windres'
CC = 'gcc'

ensure_present [MC, RC, CC]

task :build => [EVT_RESOURCE_OBJECT, EVT_SHARED_OBJECT]
task :default => [:build, :register]

file EVT_RC_FILE=> EVT_MC_FILE do
  sh "#{MC} #{EVT_MC_FILE}"
end

file EVT_RESOURCE_OBJECT => EVT_RC_FILE do
  sh "#{RC} -i #{EVT_RC_FILE} -o #{EVT_RESOURCE_OBJECT}"
end

file EVT_SHARED_OBJECT => EVT_RESOURCE_OBJECT do
  sh "#{CC} -o #{EVT_SHARED_OBJECT} -shared #{EVT_RESOURCE_OBJECT}"
end

task :register => EVT_SHARED_OBJECT do
  require 'win32/eventlog'
  dll_file = File.expand_path(EVT_SHARED_OBJECT)
  begin
    Win32::EventLog.add_event_source(
      :source => "Application",
      :key_name => "Chef",
      :event_message_file => dll_file,
      :category_message_file => dll_file
    )
  rescue Errno::EIO => e
    puts "Skipping event log registration due to missing privileges: #{e}"
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
chef-12.6.0-universal-mingw32 ext/win32-eventlog/Rakefile
chef-12.5.1-universal-mingw32 ext/win32-eventlog/Rakefile
chef-12.4.3-universal-mingw32 ext/win32-eventlog/Rakefile
chef-12.4.2-universal-mingw32 ext/win32-eventlog/Rakefile
chef-12.4.1-universal-mingw32 ext/win32-eventlog/Rakefile
chef-12.4.0-universal-mingw32 ext/win32-eventlog/Rakefile
chef-12.4.0.rc.2-universal-mingw32 ext/win32-eventlog/Rakefile
chef-12.4.0.rc.0-universal-mingw32 ext/win32-eventlog/Rakefile
chef-12.3.0-x86-mingw32 ext/win32-eventlog/Rakefile
chef-12.3.0.rc.0-x86-mingw32 ext/win32-eventlog/Rakefile