mirror of
https://github.com/munki/munki.git
synced 2025-12-31 03:29:55 -06:00
46 lines
1.5 KiB
Python
Executable File
46 lines
1.5 KiB
Python
Executable File
#!/usr/bin/python
|
|
"""
|
|
Postinstall script to load munki's launchdaemons.
|
|
"""
|
|
import subprocess
|
|
import sys
|
|
import os
|
|
|
|
|
|
def getconsoleuser():
|
|
'''Uses Apple's SystemConfiguration framework to get the current
|
|
console user'''
|
|
from SystemConfiguration import SCDynamicStoreCopyConsoleUser
|
|
cfuser = SCDynamicStoreCopyConsoleUser(None, None, None)
|
|
return cfuser[0]
|
|
|
|
|
|
def launchctld(identifier):
|
|
launchd = identifier + '.plist'
|
|
volume = sys.argv[3]
|
|
if volume == "/":
|
|
try:
|
|
path = os.path.join('/Library', 'LaunchDaemons', launchd)
|
|
cmd = ['/bin/launchctl', 'load', path]
|
|
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE)
|
|
output, err = proc.communicate()
|
|
return output
|
|
except KeyError:
|
|
pass
|
|
|
|
|
|
def main():
|
|
# Only load the launch daemons if there isn't a console user or at the
|
|
# loginwindow. launchctl.py will take care of the restart via the pkg
|
|
# distribution.xml
|
|
consoleuser = getconsoleuser()
|
|
if consoleuser is None or consoleuser == u"loginwindow" or consoleuser == u"_mbsetupuser":
|
|
launchctld('com.googlecode.munki.managedsoftwareupdate-check')
|
|
launchctld('com.googlecode.munki.managedsoftwareupdate-install')
|
|
launchctld('com.googlecode.munki.managedsoftwareupdate-manualcheck')
|
|
launchctld('com.googlecode.munki.logouthelper')
|
|
|
|
if __name__ == '__main__':
|
|
main()
|