Skip to content

Baseline v2.0

Compare
Choose a tag to compare
@BigMacAdmin BigMacAdmin released this 17 Jan 07:27
· 60 commits to main since this release
bb3a245

Baseline v2.0 Release Notes

New Configuration File Keys

A huge thanks to the community members that contributed code and testing to this version of Baseline: tiredsince1985 aka @drewdiver, Mykola Grymalyuk @khronokernel, and @copyleftdev

  • New "per item" configuration key: Icon
    • swiftDialog Icons are now supported for each individual line item in your list
    • Each of the item types (Installomator, Packages, Scripts) now supports Icon as a key type
    • This is a <string> value which points to an icon file you would like to appear on that line item.
    • Define your Icon in Scripts, Packages, or Installomator Labels.
    • Icon can be a full local file path, a filename (if the file lives in /usr/local/Baseline/Icons ), an SF Symbole, or a URL where the file is hosted.
    • See this swiftDialog documentation for more details: https://github.com/swiftDialog/swiftDialog/wiki/Item-Lists#advanced
    • This feature added by: tiredsince1985 aka @drewdiver
  • New configuration key: ProgressBar
    • Boolean, default is false
    • If set to True, the swiftDialog Progress Bar feature will be used and incremented as items are progressed
    • This feature added by: Mykola Grymalyuk @khronokernel
  • New configuration key: ProgressBarDisplayNames
    • Boolean, default is false
    • If set to true, the swiftDialog progresstext feature will be used, and will list each item on the bottom of the window as it's being processed.
    • Currently only works if ProgressBar is also set to true, but this may change with a future swiftDialog update
    • This feature added by: Mykola Grymalyuk @khronokernel
  • New configuration key: LogOut
    • Boolean, default is false
    • If set to true, Baseline will force a logout at the end of the run.
      • If LogOut and Restart are both set to true, then Restart takes priority.
  • If Installomator.pkg is found in /usr/local/Baseline/Packages , then this will be used to install Installomator.
    • This allows admins to "pin" the version of Installomator they're using
  • New configuration key: BlurScreen
    • Boolean, default is true
    • If this key is set to false, the --blurscreen feature of swiftDialog will not be used.
      • You may wish to add --ontop and/or --moveable to the swiftDialog Options for each window.
  • The "Ok" button can now be enabled for the List View window.
    • New boolean key
  • New configuration key: Button1Enabled
    • Boolean, defaults is false
    • If set to true the --button1disabled feature of swiftDialog will not be used.
  • New configuration key: ReinstallDialog. Use this key to configure whether swiftDialog will be reinstalled as the final step of Baseline.
    • Boolean, default is neutral (omit this key entirely to retain default behavior)
    • swiftDialog has a feature to change the icon of the app bundle by placing a png file at /Library/Application Support/Dialog/Dialog.png
    • This key is useful, because you can deliver this icon via a Baseline item and Baseline will reinstall swiftDialog so that the icon is adopted for your app bundle.
    • swiftDialog will be reinstalled with the same priority as the initial deployment (a custom pkg in the swiftDialog directory, Installomator, or a direct download from Github which is programmed within Baseline.)
    • Configuration behavior:
      • If this key is omitted from the Baseline configuration file, then swiftDialog will be reinstalled as the last Baseline item if the custom png file exists.
      • If this key is set to false then swiftDialog will not be reinstalled, even if a custom icon is found. This is useful if you're running Baseline for circumstances aside from initial workstation deployment.
      • If this key is set to true then swiftDialog will be reinstalled as the last Baseline item, regardless of any other circumstances
  • New configuration key: IgnoreDefaultInstallomatorOptions
    • Boolean, defaults to false
    • Set this value to true if you do not want Baseline to use the built-in default Installomator options.
      • Built in options are NOTIFY=silent and BLOCKING_PROCESS_ACTION=kill
  • New configuration key: BailOutFile
    • Type: string Value: /path/to/file
    • Each time Baseline processes an item (be it a Script, Installomator Label, or PKG) it will check for the existence of this file.
    • If this file exists, Baseline will exit immediately instead of continuing to process items.
    • A failure message will be shown including the name of the previous item as a failure.
    • Use this feature if you want an escape from the entire Baseline process based on the output of a script or pkg run.
    • This file will be deleted upon exit.
    • Baseline will exit using the exit conditions configured in the profile.
  • New configuration key: InstallomatorswiftDialogIntegration
    • Boolean, defaults to false
    • If set to true, Baseline will use the native Installomator/swiftDialog integration.
    • This will bring a lot more information per line item on what's happening during installation of Installomator labels, but that functionality will not be present in packages or scripts processed by Baseline.

New Command-Line Arguments

We are adding extended support for running Baseline as a script (as opposed to the PKG deployment.) The default PKG will not make use of these command-line arguments, however they could be used in conjunction with a PKG by creating your own LaunchDaemon with the ProgramArguments key set properly.

  • -c|--config|--configuration [/path/to/config.plist]
    • Runs Baseline using the designated plist as it's configuration file.
    • Priority for which configuration to use in case of conflict is as follows:
      1. Configuration file passed as a command-line argument
      2. Configuration file located at /usr/local/Baseline/BaselineConfig.plist
      3. .mobileconfig Profile installed manually or via MDM
    • Valid Plist configuration files can be created using iMazing Profile Editor.
  • -s|--silent|--silent-mode
    • Enables "Silent Mode" for Baseline
    • Baseline will no longer use any SwiftDialog features and SwiftDialog will not be automatically installed.
    • Baseline will not check whether a user is fully logged in. Baseline will run even at the loginwindow or prior to a user account being created.

Improvements and Fixes

  • Consolidated temporary files into a single directory to simplified the cleanup process.
  • Better handling if the configuration profile contains both LogOut and Restart keys.
    • If both values are set to true then Restart takes precedence.
  • Improved the handling of the /usr/local/Baseline/Icons folder (over 1.3beta1) to solve for permissions issues.
  • ProfileManifest updated for new keys, as well as correcting the tooltip on the CleanupAfterUse key.
  • Baseline now uses a temporary Json file to generate the List View content.
    • Big thanks to tiredsince1985 @drewdiver for contributing this change
  • If Restart is set to False, then the default List View messaging will no longer inform the user that their device will restart.
  • Added -L curl option to the command locating the latest Installomator pkg. This will help in case the Repo changes names in the future.
  • Fixed bug with including multiple Installomator options
    • Options were not parsing properly from the config file to passing options to the command when multiple options were included
  • When using a .mobileconfig configuration profile, Baseline will now copy the contents to a temporary directory and use the temp as it's config.
    • This should prevent an edge case issue we've seen with some MDM's reassigning the profile mid-run, causing errors.
  • Success and Failure dialogs now use the same "QuitKey" combination as defined in the config (Command + ] is default.)
  • Fixed an issue where if the Success or Failure dialogs were quit with the quit key they would appear 10 times and then Baseline would exit with an error.
  • Improvements to optimize the preinstall and postinstall scripts, courtesy of @copyleftdev
  • A new alternative pkg: Baseline_NoAgent_v*.pkg is being provided. This package does not install a LaunchDaemon. Use this if you do not want Baseline to fire off immediately upon installation.