Home

Awesome

#Outset Dock Profiler

This script creates a package to use with Outset that will install a user-level profile for a specific user of your choice.

Provide a username and a profile, and a script will be placed in the login-every (or login-once if you specify) directory that will check if the current username is the one you provide, and then attempt to install a user-level profile.

NOTE: This script does not check to see if your profile is User or System. If you provide a System-level profile, it'll still apply to every user regardless once installed. Check your profile before using it.

Although any user-level profile will do, my primary usage for this is Dock profiles.

##Usage

$ ./dock_profiler.py -h
usage: dock_profiler.py [-h] -p PROFILE -n NAME [-i IDENTIFIER] [-o OUTPUT]
                        [--once] [-s IDENTITY] [-v VERSION]

Creates a package for Outset that will install a profile for a specific user
on login.

optional arguments:
  -h, --help            show this help message and exit
  -p PROFILE, --profile PROFILE
                        path to profile to load. Required
  -n NAME, --name NAME  name of user to trigger on login. Required
  -i IDENTIFIER, --identifier IDENTIFIER
                        identifier of package, defaults to
                        "com.organization.profile"
  -o OUTPUT, --output OUTPUT
                        path to output package, defaults to "Outset-
                        Profile.pkg"
  --once                load profile once, not every login
  -s IDENTITY, --sign IDENTITY
                        sign package with valid identity
  -v VERSION, --version VERSION
                        version for package, defaults to 1.0

The required arguments are --profile (path to a profile) and --name (the name of the user to trigger the profile installation).

--identifier can be specified to create an identifier for the package (and the package receipt).

--output can be specified for an output path.

--once can be specified to place the profile in login-once instead of login-every. This will cause the profile only to be installed the next time the user logs in, and then it won't try again in the future.

--sign IDENTITY will sign the resulting package with a valid identity. Use /usr/bin/security find-identity -p basic to list possible identities you can use to sign the package with.

--version specifies a version number for the package. This defaults to "1.0".

Example

./dock_profiler.py -p DockStudent.mobileconfig -n student -i org.sacredsf.profile.dock.student -o Outset-Dock-Student.pkg --sign "Developer ID Installer" --version 2.0

productbuild: Using timestamp authority for signature
productbuild: Signing product with identity "Developer ID Installer" from keychain /Users/nmcspadden/Library/Keychains/login.keychain
productbuild: Adding certificate "Developer ID Certification Authority"
productbuild: Adding certificate "Apple Root CA"
productbuild: Wrote product to Outset-Dock-Student.pkg

This will create a "Outset-Dock-Student.pkg" package with receipt "org.sacredsf.profile.student" and version 2.0 that will install a profile into /Library/Profiles/DockStudent.mobileconfig, and a script into /usr/local/outset/login-every/profile-student.sh. When the "student" user logs in, this profile will be installed.