-
Notifications
You must be signed in to change notification settings - Fork 71
70 Extras
Link: SplashBuddy Ghost Package
- Do not modify the script itself! Duplicate the script, prefix one with 01 and the other with z02
- Upload both scripts to your JSS - set
01sb_ghost_pkg.sh
to Before, andz02sb_ghost_pkg.sh
to After - In the JSS, set labels for the $4 and $5 parameters - "Status" and "Package Name", respectively, on both scripts
- Create your policy, then add both scripts to it
- In the policy, set the $4 and $5 parameters in both scripts
- Add the entry to your
io.fti.SplashBuddy.plist
- Use build_pkg.sh to create your SplashBuddy package, upload to your JSS, deploy
The way SplashBuddy works is that it reads your jamf.log
and looks for the package names you specify in your io.fti.SplashBuddy.plist
. In order to get SplashBuddy to recognize and display policies that don't have packages in them - like a script or a disk encryption configuration - the same package information needs to be inserted into the jamf.log
so SplashBuddy can read it, and that is what this script does.
The script uses Jamf script parameter $4 to identify when the install starts and stops (the orange and green jellies), and script parameter $5 to insert the name of the package into the jamf.log
. You don't need to touch the script itself, everything is handled by the script as-is, and the variables are set with the $4 and $5 script parameters.
Once you've set the variables in the $4 and $5 parameters, the script works by first running once with the "Install" and your package name variables and inserts them into the jamf.log so that SplashBuddy reads them and turns on the orange jelly for that package. Then your non-package policy runs, and then the second script runs, with the "Installed" and your package name variables, inserts them into the jamf.log
where SplashBuddy reads them, sets the green jelly, then moves onto the next policy.
01: Duplicate the SplashBuddy Ghost Package script so you have two copies of it. Prefix the script names; one of them with "01" and the other one with "z02".
02: Upload both scripts to your JSS. In the Scripts section, under the Options tab, set your 01sb_ghost_pkg.sh
to Before, and z02sb_ghost_pkg.sh
to After.
03: For each script, under the Options tab, set the Parameter Label for Parameter 4 to "Status", and Parameter 5 to "Package Name".
04: Create your policy, using the same numbering and naming conventions as the other policies you've set up for SplashBuddy. Set up your payload for whatever it is, (e.g. a disk encryption configuration or a script), and then add both the 01sb_ghost_pkg.sh
and z02sb_ghost_pkg.sh
scripts to your policy.
05: In your policy, verify that your 01 script is set to Before, and your z02 script is set to After.
- For your 01 script, set the "Status" (parameter 4) value to
Installing
, and set the "Package Name" (parameter 5) value to a fake package name that represents what you're doing with this policy. For example, if this is a disk encryption policy, then name your fake packageenable_fv-1.0.0.pkg
, following the SplashBuddy guidelines for package naming.
- For your z02 script, set the "Status" (parameter 4) value to
Installed
, and set the "Package Name" (parameter 5) value to the same name you created for the first script. Just copy and paste parameter 5 from the 01 script to the z02 script.
Quick recap:
- Set 01 to Before, set z02 to After
- Set 01 Status variable to
Installing
, set z02 Status variable toInstalled
- Set 01 package name to
enable_fv-1.0.0.pkg
or whatever makes sense for your policy, set z02 package name to the same.
06: Edit your io.fti.SplashBuddy.plist
to add another entry. Using the disk encryption example, it should look like this:
<dict>
<key>canContinue</key>
<false/>
<key>description</key>
<string>Utility</string>
<key>displayName</key>
<string>Disk Encryption</string>
<key>iconRelativePath</key>
<string>FV2.png</string>
<key>packageName</key>
<string>enable_fv</string>
</dict>
Keep in mind that the fake package name set in the parameter 5 field in your scripts needs to follow the SplashBuddy package guidelines, e.g. name-version.pkg
, but your plist entry only needs the name of the package, and nothing else. You just need to make sure that the names match between your plist and your 01 and z02 parameter 5 variables.
07: Use build_pkg.sh
to build a new SplashBuddy package, upload to your JSS and deploy as normal.
Once this has all been done, next time you provision a new Mac, you should see your non-package policy listed in SplashBuddy along with all the regular package-based policies, and it should have an orange jelly while installing, and a green jelly when it's finished, just like the others.
If you can, please contribute.
You can also freely edit the wiki, every little bit helps!
Thank you 🌈