Releases: SecondSonConsulting/Baseline
Baseline v2.2.1beta1
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
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
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
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
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
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
- Boolean, default is
- New configuration key:
ProgressBarDisplayNames
- Boolean, default is
false
- If set to
true
, the swiftDialogprogresstext
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
- Boolean, default is
- 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
andRestart
are both set totrue
, thenRestart
takes priority.
- If
- Boolean, default is
- 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.
- You may wish to add
- Boolean, default is
- 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.
- Boolean, defaults is
- 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
andBLOCKING_PROCESS_ACTION=kill
- Built in options are
- Boolean, defaults to
- 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.
- Type:
- 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.
- Boolean, defaults to
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:
- Configuration file passed as a command-line argument
- Configuration file located at
/usr/local/Baseline/BaselineConfig.plist
.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
andRestart
keys.- If both values are set to
true
thenRestart
takes precedence.
- If both values are set to
- 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 toFalse
, then the default List View messaging will no longer inform the user that their device will restart.- Another thanks to Mykola Grymalyuk @khronokernel for this
- 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
andpostinstall
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
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
- Boolean, default is
- New configuration key:
ProgressBarDisplayNames
- Boolean, default is
false
- If set to
true
, the swiftDialogprogresstext
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
- Boolean, default is
- 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
andRestart
are both set totrue
, thenRestart
takes priority.
- If
- Boolean, default is
- 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.
- You may wish to add
- Boolean, default is
- 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.
- Boolean, defaults is
- 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
andBLOCKING_PROCESS_ACTION=kill
- Built in options are
- Boolean, defaults to
- 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.
- Type:
- 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.
- Boolean, defaults to
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:
- Configuration file passed as a command-line argument
- Configuration file located at
/usr/local/Baseline/BaselineConfig.plist
.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
andRestart
keys.- If both values are set to
true
thenRestart
takes precedence.
- If both values are set to
- 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 toFalse
, then the default List View messaging will no longer inform the user that their device will restart.- Another thanks to Mykola Grymalyuk @khronokernel for this
- 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
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
- Each of the item types (Installomator, Packages, Scripts) now supports
- New configuration key
ProgressBar
typeboolean
- 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
ProgressBarDisplayNames
typeboolean
- 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 toFalse
, then the default List View messaging will no longer inform the user that their device will restart.- Another thanks to Mykola Grymalyuk @khronokernel for this
- 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
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
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.)
- Baseline will now look for a file at
- Added
CleanupAfterUse
boolean profile key- If
CleanupAfterUse
key is configured asfalse
, 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.
- If
- 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.