Skip to content

Releases: SecondSonConsulting/Baseline

Baseline v2.2.1beta1

26 Jul 06:44
a4ae938
Compare
Choose a tag to compare
Baseline v2.2.1beta1 Pre-release
Pre-release

Housekeeping

This is a very minor release with a specific purpose.

Please Test the PKGs

I have reworked my package creation process, and would appreciate assistance to make sure I didn't miss anything prior to final release.

Change Log

  • Fixed permissions issue on /Baseline/Icons folder
  • Baseline is now published under the MIT open-source license.

Baseline v2.2

13 May 20:12
1770863
Compare
Choose a tag to compare

Baseline

New Features available in v2.2

Support for apps/scripts delivered by VPP or MDM

WaitFor

A new type of item is available under the category of WaitFor. This is an array of dictionaries, just like Packages, Installomator Labels, and Scripts.
Define Path as a file path for a file you want Baseline to wait for and mark complete once that file exists. Designed for use with VPP or MDM delivered apps. Once all other items are processed, Baseline will begin waiting for each of these paths to exist on the device.
Just like Scripts Installomator or Packages, WaitFor items can be configured with Icons, Subtitles, and Display Names.
Addresses #42 as well as numerous requests on Slack.

WaitForTimout

This is an optional integer value representing how many seconds Baseline should wait before considering remaining WaitFor items to be failed. This timer does not start until all other Baseline items have been processed. Default is 300 (five minutes).

Jamf Verbose Mode

JamfVerbose is an optional boolean key, defaults to false. If it is set to true, for every ScriptPath that is /usr/local/bin/jamf Baseline will read the Jamf log and provide more verbose output on that swiftDialog line item, similar to using the InstallomatorSwiftDialogIntegration. Thank you to everyone that helped me test and hone this feature.

Bug Fixes

Just some general code cleanup, no major issues addressed.

Baseline v2.2beta1

08 Apr 15:39
Compare
Choose a tag to compare
Baseline v2.2beta1 Pre-release
Pre-release

New Features coming in v2.2 - Need testers!

Support for apps/scripts delivered by VPP or MDM

WaitFor

A new type of item is available under the category of WaitFor. This is an array of dictionaries, just like Packages, Installomator Labels, and Scripts.
Define Path as a file path for a file you want Baseline to wait for and mark complete once that file exists. Designed for use with VPP or MDM delivered apps. Once all other items are processed, Baseline will begin waiting for each of these paths to exist on the device.
Just like Scripts Installomator or Packages, WaitFor items can be configured with Icons, Subtitles, and Display Names.
Addresses #42 as well as numerous requests on Slack.

WaitForTimout

This is an optional integer value representing how many seconds Baseline should wait before considering remaining WaitFor items to be failed. This timer does not start until all other Baseline items have been processed. Default is 300 (five minutes).

Jamf Verbose Mode

JamfVerbose is an optional boolean key, defaults to false. If it is set to true, for every ScriptPath that is /usr/local/bin/jamf Baseline will read the Jamf log and provide more verbose output on that swiftDialog line item, similar to using the InstallomatorSwiftDialogIntegration.

Baseline v.2.1

18 Mar 22:55
d1fba34
Compare
Choose a tag to compare

What's New?

  • New Configuration Key for Each Item Type: Subtitle
    • Added support for the new subtitle feature in SwiftDialog 2.4+ which allows Subtitles for each line item
  • New Boolean Configuration Key: Silent
    • Previously only available as a script parameter, now can be used in the configuration profile itself
    • Using --silent at the command line overrides the settings in the configuration profile

Bugs and Housekeeping

  • Moved Report file from /usr/local/Baseline/Baseline-Report.txt to /var/log/Baseline-Report.txt
  • Improved logging function and used standard language for logging item progress/details
  • Changed example configuration files to use Firefox instead of Google Chrome
  • Fixed a bug where Baseline would exit when run from Jamf due to Jamf default script
  • Added --no-rcs to the shebang for Baseline.sh, preinstall, and postinstall scripts

Baseline_v2.1beta1

04 Mar 06:36
Compare
Choose a tag to compare
Baseline_v2.1beta1 Pre-release
Pre-release

What's New?

  • New Configuration Key for Each Item Type: Subtitle
    • Added support for the new subtitle feature in SwiftDialog 2.4+ which allows Subtitles for each line item
  • New Boolean Configuration Key: Silent
    • Previously only available as a script parameter, now can be used in the configuration profile itself
    • Using --silent at the command line overrides the settings in the configuration profile

Bugs and Housekeeping

  • Moved Report file from /usr/local/Baseline/Baseline-Report.txt to /var/log/Baseline-Report.txt
  • Improved logging function and used standard language for logging item progress/details
  • Fixed a bug where Baseline would exit when run from Jamf due to Jamf default script parameters

Baseline v2.0

17 Jan 07:27
bb3a245
Compare
Choose a tag to compare

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.

Baseline v2.0beta2

05 Jan 07:43
Compare
Choose a tag to compare
Baseline v2.0beta2 Pre-release
Pre-release

Baseline v2.0 Beta 2 Release Notes

New Configuration File Keys

  • 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 @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.

Baseline 1.3 Beta1

05 Sep 17:07
Compare
Choose a tag to compare
Baseline 1.3 Beta1 Pre-release
Pre-release

New Features

  • 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 @drewdiver
  • New configuration key ProgressBar type boolean
    • Defaults to 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 ProgressBarDisplayNamestype boolean
    • Defaults to 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
    • Defaults to False
    • If set to true, Baseline will force a logout at the end of the run instead of a Restart.
  • 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
  • ProfileManifest updated for new keys, as well as correcting the tooltip on the CleanupAfterUse key.

Other Improvements

  • Baseline now uses a temporary Json file to generate the List View content. This allows us to use more advanced features, like the line item Icons.
    • 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.

Baseline v1.2.1

29 Aug 16:05
Compare
Choose a tag to compare

The repository hosting SwiftDialog changed from Bart Reardon's personal github to an organization github. This broke the automatic installation of SwiftDialog for configurations which did not include Installomator labels. This update fixes that problem by updating the URL to the new value, and future proofs it by using -L for finding the latest version in case it moves again.

If you are using Installomator in your Baseline configurations, then you do not have the problem described above and should not feel like you need to update your Baseline deployments.

Baseline v1.2

31 May 05:45
b69f68d
Compare
Choose a tag to compare

This release is identical code to the v1.2beta1 pre-release

  • Added the ability to use a custom plist configuration file instead of a mobileconfig profile
    • Baseline will now look for a file at /usr/local/Baseline/BaselineConfig.plist
    • If this file exists, it will be used to determine what items are processed
    • This file is checked both before and after InitialScripts and takes precedence over an MDM delivered configuration profile
    • This means Baseline can now be run completely independent of an MDM profile, if the custom configuration plist is delivered (either with a custom built Baseline pkg or other means.)
  • Added CleanupAfterUse boolean profile key
    • If CleanupAfterUse key is configured as false, then Baseline will not delete it's working directory /usr/local/Baseline.
    • The LaunchDaemon will still always be deleted, in order to prevent multiple runs.
    • This key defaults to true and can be omitted if you wish to keep the previous behavior to delete the Baseline folder.
  • Reordered Restart code to provide for the new features
  • Added logic to turn off verbose mode while waiting for user to log in. This should cut down on log spam significantly when Baseline is initiated while no user is present.
  • The pkg preinstall script now properly boots out the LaunchDaemon if its already running. The pkg can now be run multiple times without a reboot.
  • The pkg postinstall script now uses launchctl bootstrap instead of load.