Remove launchjobs even if they are not loaded

This commit is contained in:
Josh Hagins 2015-10-28 12:31:43 -04:00
parent ca2f4bb6b8
commit 9793861422
1 changed files with 7 additions and 9 deletions

View File

@ -212,17 +212,15 @@ class Hbc::Artifact::UninstallBase < Hbc::Artifact::Base
plist_status = @command.run('/bin/launchctl', :args => ['list', service], :sudo => with_sudo, :print_stderr => false).stdout
if %r{^\{}.match(plist_status)
result = @command.run!('/bin/launchctl', :args => ['remove', service], :sudo => with_sudo)
if result.success?
paths = ["/Library/LaunchAgents/#{service}.plist",
"/Library/LaunchDaemons/#{service}.plist"]
paths.each { |elt| elt.prepend(ENV['HOME']) } unless with_sudo
paths = paths.map { |elt| Pathname(elt) }.select(&:exist?)
paths.each do |path|
@command.run!('/bin/rm', :args => ['-f', '--', path], :sudo => with_sudo)
end
end
sleep 1
end
paths = ["/Library/LaunchAgents/#{service}.plist",
"/Library/LaunchDaemons/#{service}.plist"]
paths.each { |elt| elt.prepend(ENV['HOME']) } unless with_sudo
paths = paths.map { |elt| Pathname(elt) }.select(&:exist?)
paths.each do |path|
@command.run!('/bin/rm', :args => ['-f', '--', path], :sudo => with_sudo)
end
# undocumented and untested: pass a path to uninstall :launchctl
if Pathname(service).exist?
@command.run!('/bin/launchctl', :args => ['unload', '-w', '--', service], :sudo => with_sudo)