Builds on #29868 (to have windows support).
This switches the -*notify
options to use the subprocess library, which is currently used for only the external signer. The main advantage of this is that file descriptor leaks are avoided (#32343). This could also add future flexibility in notifications, for example to bypass the shell (and launch commands with their arguments directly[1]), or do something with command output (like log it). But for now, this is meant to be one-to-one.
- Generalize
ENABLE_EXTERNAL_SIGNER
build option toENABLE_SUBPROCESS
. - Unify everything dealing with external commands in
common/run_command.cpp
. Use the new functionsRunShell
andRunShellInThread
. - Remove
HAVE_SYSTEM
.
[1] There’s a long-running issue on Windows where it can’t pass the wallet name because there’s no way to escape it for the shell.