Mam następującego agenta uruchamiania, który działa w systemie OS X i uruchamia poniższy skrypt, aby usunąć aplikację, gdy użytkownik pobierze aktualizację systemu operacyjnego ze sklepu App Store. Następnie wyświetla wiadomość użytkownikowi po usunięciu.
#!/bin/bash
Version=$(sw_vers | grep ProductVersion | tail -c 7 | cut -d . -f 2)
if [[ $Version -ge 11 ]]
then
launchctl unload /Library/LaunchAgents/net.company_name.blocksierra.plist
rm -f /Library/LaunchAgents/net.company_name.blocksierra.plist
rm -f /usr/local/bin/blocksierra.sh
exit 0
else
rm -rf /Applications/Install\ macOS\ Sierra\ Public\ Beta.app/
osascript -e 'display dialog "macOS sierra is not allowed on computers at this time." with title "Technology Notice" buttons {"OK"} default button "OK" giving up after 30'
fi
Teraz spakuję go, a następnie wdrożę na wszystkich naszych komputerach Mac. Moje pytanie brzmi: co dodać do skryptu, aby pakiet automatycznie „ładował” program uruchamiający automatycznie po zainstalowaniu pakietu?
Innymi słowy, jak włączyć to polecenie?
sudo launchctl load /Library/LaunchAgents/net.company_name.blocksierra.plist
Oto lista rzeczy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com /DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.company_name.blocksierra</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/blocksierra.sh</string>
</array>
<key>KeepAlive</key>
<dict>
<key>PathState</key>
<dict>
<key>/Applications/Install macOS Sierra Public Beta.app/</key>
<true/>
</dict>
</dict>
<key>OnDemand</key>
<true/>
</dict>
</plist>