Releases: SecondSonConsulting/Renew
1.2beta1
v1.2 Change Log
Note: A profile manifest with new profile keys is included here. This will be pushed to the official ProfilesManifest repository upon full release of this version. Use the local one for testing.
New Features
- New Default Behavior: Clicking the Dialog notification will initiate the restart window
- This can be disabled in the profile with new OptionalArguments boolean key set to
false
:NotificationActionEnabled
#81
- This can be disabled in the profile with new OptionalArguments boolean key set to
- Language support for Dutch (nl)
- Thank you, @DevliegereM! #90
- Renew can now be used with a plist file OR a mobileconfig
- If a mobile configuration file is not found, Renew will check for a configuration file in this location:
/Library/Preferences/com.secondsonconsulting.renew.plist
- You can still use iMazing Profile Editor to make this plist, just choose "Payload > Export as Plist"
- Huge thanks to @drtaru for adding this feature.
- If a mobile configuration file is not found, Renew will check for a configuration file in this location:
- Admins can now choose additional applications to ignore assertions.
- Huge thanks to @drtaru for adding this feature.
- If you don't want to respect a display sleep assertion for an application, you can add that application to an
OptionalArguments:IgnoreAssertions
array in your configuration file. - The default assertions to ignore will still be used as well (
obs caffeinate Amphetamine
) - Use
pmset -g
to see what applications are using assertions as well as how to ignore them.
Improvements
-
Argument Processing rewritten
--version
now prints only the script version and exits with no logs and no other output- Multiple arguments are now supported. It is up to the operator to ensure conflicting arguments are not passed
--verbose --force-normal --dryrun
is valid--verbose --force-normal --force-notification
is invalid, and will result in undefined behavior
--verbose
or-v
enablesset -x
for verbose troubleshooting output--dryrun
argument now does not process a deferral as well as disabling Restart prompt--deadline
argument now sets the deadline to the provided value for testing- Example:
./Renew.sh --deadline 66
will set the deadline to 66 days uptime
- Example:
--print-configuration
option will print the configuration file and exit--configuration /path/to/renew.plist
allows you to specify a plist file you wish to use as the configuration for that run.- This is intended for use in testing, though, there's nothing stopping you from using this option with a LaunchAgent or from your management tool
- This argument overrides any MDM profile or configuration file for that run
- #80
--language
followed by a language code will allow you to test Renew behavior for different languages (i.e.--language nl
would use Dutch)--help
is now more reliable. Thanks @aschwanb
-
Renew no longer processes deferrals/events if the system has been idle from human input for over 60 minutes
-
If the same program has multiple display sleep assertions (like caffeinate running twice or more), Renew will now properly ignore them if they're on the
IgnoreAssertions
list.- Thanks again to @drtaru for this improvement.
Housekeeping
- Renew is now published under the MIT open-source license
- All log messages are now also written to standard output
- Log messages are more useful in determinig what logic is being applied and why
- Debug messages now only visible in verbose mode, and not tied to
--dryrun
option
Renew.sh v1.0.1
- Fixed a math bug within the Deadline feature
Renew.sh v1.0.0
Renew.sh v1.0 - Patch Notes
- First production release!
- Gently (or not so much) urge your users to restart their computers on a regular basis
- Works with a Deferrals system or a Deadline (or combination).
- Utilize the many amazing features of SwiftDialog to make beautiful native macOS windows and notifications with your branding and messaging of choice.
- Control the branding and operation entirely through a Mobile Configuration file
- Profiles Manifest support (which feeds into iMazing Profile Editor, pending pull request on that project)
- Installomator support (pending pull request on that project)
- Default package includes a Launch Agent to run the script every 30 minutes
- Alternate package does not include a Launch Agent. Configure your own custom scheduling to suit your needs
- Visit the wiki for detailed documentation and deployment scenarios
- Default language support for 5 languages (and will add more upon submission)
- Ask questions or get community support in the #renew channel on the Mac Admins Slack
Renew Beta v0.1.11
Renew.sh v0.1.11 - Patch Notes
- Fixed a bug that could affect the "restart now" button behavior in Deadline mode or --force-aggro mode
- Minor code cleanup
Renew.sh v0.1.10
Renew.sh v0.1.10 - Patch Notes
- This release, and all future releases, will now be Signed, Notarized, and Stapled with: "Developer ID Installer: Second Son Consulting Inc. (7Q6XP5698G)"
- This release, and all future releases, will include an alternate pkg which has no LaunchAgent, and no pre or post-install scripts. If you're using your own customized timing mechanism you can safely run the
Renew_v.x_NoAgent.pkg
package and not overwrite your own changes. - Fixed dialogExitCode variable typo
- ***Default messaging behavior changed! Removed
-o
flag from dialog command, resulting in default SwiftDialog behavior that windows cannot be moved. This can be added to yourOptionalArguments
AdditionalDialogOptions
in your configuration file if you would like your windows to be movable. - Added additional configuration keys for:
- AdditionalNormalOptions
- AdditionalAggressiveOptions
- AdditionalNotificationOptions
- NotificationSubtitle
- Added
--defer n
testing feature, wheren
equals the number of minutes you want to set a deferral for. Script exits after processing the deferral. - ***Default messaging behavior changed! Added
ShowDeferralCount
Optional Argument.- The "deferrals remaining" language is no longer included by default
- Set this key to boolean to show the "deferrals remaining" language in Normal Mode events
- Added
Deadline
Optional Argument. Use this to set an uptime deadline of <integer> days and if your uptime exceeds this you get Aggressive Mode messages.- See this page for an example and explanation on how to use this new feature.
- Added the ability to disable
MaximumDeferrals
by setting to-1
- Added the ability to disable
NotificationThreshold
by setting to-1
See Optional Arguments, Required Arguments, and Command Line Arguments wiki pages for details on how to implement these new features.
I've also added numerous examples to the Deployment Strategies wiki page to spark ideas on how to configure.
Please help me test this release, as I would like to make it the v1.0 if there are no show-stoppers found.
Renew v.0.1.8
v0.1.8 Improvements and Changes
- Added extensible language support
- Added default messages for:
- Italiano
- Deutsch
- French
- Espaniol
- Français
- Added a 5 minute reduction to all deferrment calculations. This should result in a more reliable experience for duration of deferrals
- Streamlined and simplified logging by reducing chatty messages to the log file
- Added simple log rotation
- Added support for Banner images
- Added support for Dark Mode Icons and Banner Images
- Unified and clarified various exit codes
- Display sleep assertion detection added.
- If an application has told your computer "don't sleep the display" then this is detected, and Renew does not trigger (and does not use a deferral).
- Exmple of applications which assign Display sleep assertions: Zoom/Teams/WebEx phone/video calls, Teams calls, Youtube/Netflix video playback, caffeinate command
- Some Display sleep assertions are ignored by default, and a future release will allow admins to configure applications they wish to ignore via profile key.
- Default ignored assertions:
- Amphetamine
- caffeinate
- obs
Beta
This release is still considered Beta. Please provide feedback to @BigMacAdmin here or on the Mac Admins Slack