class MultiScheduler::Launchd

Constants

USER_AGENT

Public Instance Methods

start() click to toggle source
# File lib/multi_scheduler/schedule/launchd.rb, line 8
def start
  stop
  plist.dump USER_AGENT
  plist.load!
end
stop() click to toggle source
# File lib/multi_scheduler/schedule/launchd.rb, line 14
def stop
  return false unless plist_exists?
  plist.unload!
  FileUtils.rm_f plist.file
end

Private Instance Methods

plist() click to toggle source
# File lib/multi_scheduler/schedule/launchd.rb, line 32
def plist
  @plist ||= LaunchDr::Launchd.new(@identifier).tap do |plist|
    plist[:ProgramArguments] = @command_arguments.dup.unshift(@command)
    plist[:RunAtLoad] = true
    plist[:EnvironmentVariables] = { 'PATH' => ENV['PATH'] } # TODO: add path option
  end
end
plist_exists?() click to toggle source
# File lib/multi_scheduler/schedule/launchd.rb, line 24
def plist_exists?
  begin
    File.exists? plist.file
  rescue
    false
  end
end