Menu Close

SYM-Lite (1.0.0b3)

Official 1.0.0 release of SYM-Lite is now available

SYM-Lite is a lean, purpose-built script for executing MDM-agnostic Installomator labels — and / or Jamf Pro-specific policy triggers — all through a unified swiftDialog selection interface

Slideshow

Key Features

  • Dual execution support — Installomator labels and Jamf Pro policies in single session
  • Interactive selection UI — User-friendly checkbox dialog with per-item icons
  • Alphabetical sorting — All items sorted together by display name in selection dialog
  • Inspect Mode monitoring — Real-time progress with rich status updates for Installomator labels
  • Log monitoring — Parses Installomator.log for intermediate states (downloading, installing, verifying)
  • Silent mode — CSV-based automation support
  • Path-based validation — Pre/post-execution checks via file system monitoring
  • Cache monitoring — Detects in-progress downloads
  • Completion report — Per-item results summary and optional restart prompt
  • Graceful interruption — Clean shutdown on SIGINT/SIGTERM with 30-second timeout

Quick Start Guide

The latest version of SYM-Lite.zsh is always available on GitHub.

1. Add Installomator Labels

All Mac Admins can easily leverage the power of Installomator with SYM-Lite


Installomator Quick Start

Edit the installomatorLabels array near the top of SYM-Lite.zsh:

installomatorLabels=(
    "label | Display Name | Validation Path | Icon URL"
)

Here are just a few examples — each with a fully qualified icon URL — of Installomator’s many available labels, which should follow a pipe-separated format:

  • Label
  • Display Name
  • Validation Path
  • Icon URL
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
# Item Configuration Arrays
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 

# Installomator Labels
# Format: "label | Display Name | Validation Path | Icon URL"
installomatorLabels=(
    "androidstudio | Android Studio | /Applications/Android Studio.app | https://use2.ics.services.jamfcloud.com/icon/hash_f7021d808263d18f52ba2535ec66d35f8bb24b08ab9bff6aee22ecb319159904"
    "awsvpnclient | AWS VPN Client | /Applications/AWS VPN Client/AWS VPN Client.app | https://usw2.ics.services.jamfcloud.com/icon/hash_1d1bef5523d9f7eca5a45f2db9a63732e85edb5f914220807ca740ba7c4881b9"
    "bruno | Bruno | /Applications/Bruno.app | https://usw2.ics.services.jamfcloud.com/icon/hash_48501630ad2f5dd5de3e055d6acdda07682895440cad366ee7befac71cab1399"
    "charles | Charles Proxy | /Applications/Charles.app | https://use2.ics.services.jamfcloud.com/icon/hash_59b395ca81889a6d83deda8e6babc5ae4bc5931d36a72b738fe30b84d027593d"
    "docker | Docker | /Applications/Docker.app | https://usw2.ics.services.jamfcloud.com/icon/hash_a344dca5fdc0e86822e8f21ec91088e6591b1e292bdcebdee1281fbd794c2724"
    "jetbrainsintellijidea | IntelliJ IDEA | /Applications/IntelliJ IDEA.app | https://usw2.ics.services.jamfcloud.com/icon/hash_f669d73acc06297e1fc2f65245cfbdace03263f81aebf95444a8360a101b239d"
    "visualstudiocode | Visual Studio Code | /Applications/Visual Studio Code.app | https://use2.ics.services.jamfcloud.com/icon/hash_532094f99f6130f325a97ed6421d09d2a416e269f284304d39c21020565056ed"
)

# Jamf Pro Policies
# Format: "trigger | Display Name | Validation Path | Icon URL"
jamfPolicyItems=(
    "appleXcode | Xcode | /Applications/Xcode.app | https://usw2.ics.services.jamfcloud.com/icon/hash_583afb5af440479d642b3c35ec4ec3ad06c74ec814dba9af84e4e69202edf62a"
    "homebrew | Homebrew | /opt/homebrew/bin/brew | https://usw2.ics.services.jamfcloud.com/icon/hash_9edff3eb98482a1aaf17f8560488f7b500cc7dc64955b8a9027b3801cab0fd82"
)
2. (Optional) Add Jamf Policy Custom Triggers

Mac Admins using an MDM other than Jamf Pro should set: enableJamfPolicyItems="false"


Jamf Pro Quick Start

Edit the jamfPolicyItems array near the top of SYM-Lite.zsh:

jamfPolicyItems=(
    "trigger | Display Name | Validation Path | Icon URL"
)

Here are two example Jamf Pro policy custom triggers — again, each with a fully qualified icon URL — following a similar pipe-separated format:

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
# Item Configuration Arrays
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 

# Installomator Labels
# Format: "label | Display Name | Validation Path | Icon URL"
installomatorLabels=(
    "androidstudio | Android Studio | /Applications/Android Studio.app | https://use2.ics.services.jamfcloud.com/icon/hash_f7021d808263d18f52ba2535ec66d35f8bb24b08ab9bff6aee22ecb319159904"
    "awsvpnclient | AWS VPN Client | /Applications/AWS VPN Client/AWS VPN Client.app | https://usw2.ics.services.jamfcloud.com/icon/hash_1d1bef5523d9f7eca5a45f2db9a63732e85edb5f914220807ca740ba7c4881b9"
    "bruno | Bruno | /Applications/Bruno.app | https://usw2.ics.services.jamfcloud.com/icon/hash_48501630ad2f5dd5de3e055d6acdda07682895440cad366ee7befac71cab1399"
    "charles | Charles Proxy | /Applications/Charles.app | https://use2.ics.services.jamfcloud.com/icon/hash_59b395ca81889a6d83deda8e6babc5ae4bc5931d36a72b738fe30b84d027593d"
    "docker | Docker | /Applications/Docker.app | https://usw2.ics.services.jamfcloud.com/icon/hash_a344dca5fdc0e86822e8f21ec91088e6591b1e292bdcebdee1281fbd794c2724"
    "jetbrainsintellijidea | IntelliJ IDEA | /Applications/IntelliJ IDEA.app | https://usw2.ics.services.jamfcloud.com/icon/hash_f669d73acc06297e1fc2f65245cfbdace03263f81aebf95444a8360a101b239d"
    "visualstudiocode | Visual Studio Code | /Applications/Visual Studio Code.app | https://use2.ics.services.jamfcloud.com/icon/hash_532094f99f6130f325a97ed6421d09d2a416e269f284304d39c21020565056ed"
)

# Jamf Pro Policies
# Format: "trigger | Display Name | Validation Path | Icon URL"
jamfPolicyItems=(
    "appleXcode | Xcode | /Applications/Xcode.app | https://usw2.ics.services.jamfcloud.com/icon/hash_583afb5af440479d642b3c35ec4ec3ad06c74ec814dba9af84e4e69202edf62a"
    "homebrew | Homebrew | /opt/homebrew/bin/brew | https://usw2.ics.services.jamfcloud.com/icon/hash_9edff3eb98482a1aaf17f8560488f7b500cc7dc64955b8a9027b3801cab0fd82"
)
3. Usage

See README.md for additional information


User Experience

  1. Selection dialog appears with all configured items
  2. User selects one or more items using checkboxes
  3. Inspect Mode dialog launches showing real-time progress
  4. Completion report shows one row per selected item
  5. Optional restart prompt

Jamf Pro Configuration

  1. Add your customized SYM-Lite.zsh to your Jamf Pro server
    • Parameter 4: operationMode [ interactive (default) | silent ]
    • Parameter 5: operationsCSV (i.e., comma-separated list of item IDs for silent mode)
  2. Create a new Jamf Pro Policy
  3. Test

Support

Community-supplied, best-effort support is available on the Mac Admins Slack (free, registration required) #setup-your-mac channel, or you can open an issue.

Posted in Archived, Jamf Pro, Scripts, Setup Your Mac, swiftDialog

Related Posts