- Fixed: If the wrapped command sent its own ctrl-C event, that would cause Shawl to exit unexpectedly. (Contributed by FGeloso)
- Added:
--interactiveoption to preserve that previous behavior. (Contributed by FGeloso)
- Added:
--kill-process-treeoption to ensure child processes are also terminated. (Contributed by nitaysol)
- Added:
--restart-delayoption.
- Added:
--path-prependoption.
- Fixed: Old log files were not deleted when stored on a Windows network share.
- Fixed: Local UNC paths were only simplified for the C drive.
- Added:
shawl --versionto display the program version. - Changed: Help text is now styled a bit differently.
- Added:
--log-rotateoption to control how often the log file rotates. - Added:
--log-retainoption to control how many old log files are retained. - Added:
--log-asoption to change the base name of the main log file. - Added:
--log-cmd-asoption to log the wrapped command's stdout/stderr in a separate file.
- Fixed: The path to the Shawl executable was not quoted when it contained spaces.
- Added:
--priorityoption to set the process priority. - Added:
--dependenciesoption foraddcommand to specify services as dependencies.
- Fixed: Possible case in which old log files would not be deleted. (Contributed by Luokun2016)
- Added: Some guidance in the README related to security. (Contributed by kenvix)
- Fixed: When both
--cwdand--pathwere specified, they would both try to update the command'sPATHenvironment variable, but the changes from--cwdwould override the changes from--path. - Changed: When using
--cwdand--path, Shawl now simplifies local UNC paths. For example,\\?\C:\tmpbecomesC:\tmp. Some programs, notably Command Prompt, don't like UNC paths, so this is intended to broaden compatibility. - Changed: The CLI output now uses a prettier format, including color.
- Fixed
--pass,--restart-if, and--restart-if-notnot allowing a leading negative number. - Fixed
--pass,--restart-if, and--restart-if-notnot requiring a value. - Fixed
--no-restart,--restart-if, and--restart-if-notnot being marked as mutually exclusive. They had only been marked as exclusive with--restart.
- Added version to executable properties.
- Added
--log-dir. (Contributed by oscarbailey-tc) - Added
--env. - Added
--path. - When a custom
--cwdis set, it is now automatically added to the command's PATH to make it easier to write some commands. Specifically, assuming there is aC:\foo\bar\baz.exe, then--cwd C:\foo\bar -- baz.exewill work now, but--cwd C:\foo -- bar\baz.exestill will not work, because the PATH only helps to resolve executable names, not subfolder names.
- Shawl now handles computer shutdown/restart, allowing the wrapped program to exit gracefully.
- Fixed an issue introduced in v0.6.1 where the 32-bit executable was not usable on 32-bit systems.
- Changed build process to avoid potential "VCRUNTIME140_1.dll was not found" error when using the program.
- Updated
windows-servicedependency to avoid a build failure whereerr-derivewould use a private symbol fromquote.
- Added
--pass-start-args. (Contributed by Enet4) - Added log rotation and service-specific log files.
- Added logging of stdout and stderr from commands.
- Added
--no-logand--no-log-cmdoptions to configure logging.
- Added
--cwdfor setting the command's working directory. - Set default help text width to 80 characters.
- Fixed issue where Shawl would not report an error if it was unable to launch the command (e.g., file not found).
- Fixed missing quotes when adding a service if the name or any part of the command contained inner spaces.
- Fixed
--passand--stop-timeoutbeing added to the service command configured byshawl addeven when not explicitly set.
- Added
shawl addfor quickly creating a Shawl-wrapped service. - Moved existing CLI functionality under
shawl run. - Generalized
--restart-okand--no-restart-errinto--(no-)restartand--restart-if(-not). - Added
--passto customize which exit codes are considered successful.
- Send ctrl-C to child process first instead of always forcibly killing it.
- Report command failure as a service-specific error to Windows.
- Added
--stop-timeoutoption.
- Initial release.