class Henchman::LaunchdHandler
Public Class Methods
internet_connection?()
click to toggle source
# File lib/launchd_handler.rb, line 62 def self.internet_connection? begin true if open("https://www.dropbox.com/") rescue false end end
start(args)
click to toggle source
# File lib/launchd_handler.rb, line 7 def self.start args if !internet_connection? puts "No internet connection detected - unable to verify correct configuration." return if !agree("Launch henchman anyways? (y/n) ") else puts "Checking configuration" return if !Henchman.connect end puts "Creating agents" plist_main = Henchman::Templates.plist_main plist_path_main = File.expand_path("~/Library/LaunchAgents/com.henchman.plist") plist_clean = Henchman::Templates.plist_clean plist_path_clean = File.expand_path("~/Library/LaunchAgents/com.henchman.clean.plist") shell_script_path_main = File.expand_path("~/.henchman/run.sh") shell_script_path_clean = File.expand_path("~/.henchman/clean.sh") cache_path = File.expand_path("~/.henchman/cache") File.write(plist_path_main, plist_main) File.write(shell_script_path_main, Henchman::Templates.shell_script('run', args)) File.write(plist_path_clean, plist_clean) File.write(shell_script_path_clean, Henchman::Templates.shell_script('clean')) File.open(cache_path, "w") { |f| f.write( Henchman::Templates.cache.to_yaml ) } puts "Launching agent" `chmod +x #{shell_script_path_main}` `chmod +x #{shell_script_path_clean}` `launchctl load #{plist_path_main}` `launchctl load #{plist_path_clean}` puts "Launched successfully! You are now running henchman." open(File.expand_path("~/.henchman/stdout.log"), 'a') do |f| f.puts "#{DateTime.now.strftime('%m-%d-%Y %H:%M:%S')}|Henchman Started" end end
stop()
click to toggle source
# File lib/launchd_handler.rb, line 42 def self.stop puts "Stopping agents" plist_path_main = File.expand_path("~/Library/LaunchAgents/com.henchman.plist") plist_path_clean = File.expand_path("~/Library/LaunchAgents/com.henchman.clean.plist") `launchctl unload #{plist_path_main} 2> /dev/null` `launchctl unload #{plist_path_clean} 2> /dev/null` `rm #{plist_path_main} 2> /dev/null` `rm #{plist_path_clean} 2> /dev/null` `rm #{File.expand_path("~/.henchman/run.sh")} 2> /dev/null` `rm #{File.expand_path("~/.henchman/clean.sh")} 2> /dev/null` `rm #{File.expand_path("~/.henchman/cache")} 2> /dev/null` # `rm #{File.expand_path("~/.henchman/stdout.log")} 2> /dev/null` # `rm #{File.expand_path("~/.henchman/stderr.log")} 2> /dev/null` puts "Successfully stopped henchman" open(File.expand_path("~/.henchman/stdout.log"), 'a') do |f| f.puts "#{DateTime.now.strftime('%m-%d-%Y %H:%M:%S')}|Henchman Stopped" end end