Skip to content
Joseph Chilcote edited this page Mar 23, 2016 · 15 revisions

##Introduction to Outset

Outset is a script which automatically processes packages, profiles, and scripts during the boot sequence, user logins, or on demand.

###Requirements

  • python 2.7+
  • It's only been tested on 10.9.x and above

###Overview

Outset is meant to be triggered by launchd so there is no interactive mode as such. The --boot mode is triggered by a LaunchDaemon and therefore will be run as root. The --login mode is triggered by a LaunchAgent, so it is running in the context of the user logging in.

For testing purposes, one could manually invoke the command:

sudo /usr/local/bin/outset/outset --boot
/usr/local/bin/outset/outset --login

Outset is controlled by four launchd plists:

/Library/LaunchDaemons/com.github.outset.boot.plist
/Library/LaunchDaemons/com.github.outset.cleanup.plist
/Library/LaunchAgents/com.github.outset.login.plist
/Library/LaunchAgents/com.github.outset.on-demand.plist

The boot LaunchDaemon runs packages, profiles, and scripts during the boot sequence, and will either run once, or at every subsequent boot, depending on the directory in which the files are placed:

/usr/local/outset/boot-once/
/usr/local/outset/boot-every/

The login LaunchAgent runs any scripts or profiles during user login, and will run either once, or at every subsequent login, depending on the directory in which the files are placed:

/usr/local/outset/login-once/
/usr/local/outset/login-every/

The on-demand LaunchAgent and cleanup LaunchDaemon process and then remove scripts or profiles from the following directory immediately, in the user context, for any currently logged in user (for those using Fast User Switching, it will only run in the current GUI session, and will not run in any background sessions):

/usr/local/outset/on-demand/

(Note: on-demand scripts will be immediately removed and thus will not run during subsequent logins)

####Logging Outset logs to standard out and to two different log files, depending on the context in which the script is being run (root or user):

/var/log/outset.log
~/Library/Logs/outset.log