­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ """ Manage launchd plist files """ import os import sys def write_launchd_plist(program): """ Write a launchd plist for managing salt-master or salt-minion CLI Example: .. code-block:: bash salt-run launchd.write_launchd_plist salt-master """ plist_sample_text = """ Label org.saltstack.{program} RunAtLoad KeepAlive ProgramArguments {script} SoftResourceLimits NumberOfFiles 100000 HardResourceLimits NumberOfFiles 100000 """.strip() supported_programs = ["salt-master", "salt-minion"] if program not in supported_programs: sys.stderr.write(f"Supported programs: '{supported_programs}'\n") sys.exit(-1) return plist_sample_text.format( program=program, python=sys.executable, script=os.path.join(os.path.dirname(sys.executable), program), )