mirror of
https://github.com/munki/munki.git
synced 2026-01-01 12:10:24 -06:00
Avoid masking the system /usr/bin/python by calling our symlink "munki-python" instead of "python". Closes #996
52 lines
1.6 KiB
Plaintext
Executable File
52 lines
1.6 KiB
Plaintext
Executable File
#!/usr/local/munki/munki-python
|
|
# encoding: utf-8
|
|
#
|
|
# Copyright 2018-2020 Greg Neagle.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
"""
|
|
precache_agent
|
|
|
|
Created by Greg Neagle on 2018-07-18.
|
|
|
|
A privileged agent that downloads optional installs items marked for precaching.
|
|
"""
|
|
from __future__ import absolute_import
|
|
|
|
import signal
|
|
import sys
|
|
import time
|
|
|
|
from munkilib import display
|
|
from munkilib.updatecheck import download
|
|
|
|
|
|
def signal_handler(signum, _):
|
|
"""Handle any signals we've been told to.
|
|
Right now just handle SIGTERM so clean up can happen, like
|
|
garbage collection, which will trigger object destructors and
|
|
kill any launchd processes we've started."""
|
|
if signum == signal.SIGTERM:
|
|
display.display_info("### Precaching session stopped ###")
|
|
sys.exit()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# install handler for SIGTERM
|
|
signal.signal(signal.SIGTERM, signal_handler)
|
|
# turn off Munki status output; this should be silent
|
|
display.munkistatusoutput = False
|
|
download.cache()
|
|
# sleep 10 seconds to prevent launchd from complaining
|
|
time.sleep(10)
|