Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
There is some discussion in the drush queue about changing the way backend invoke works when $integrate is FALSE; see #1058874: drush_backend_invoke buffers output till end of command. Show progress..
It would be useful to have some feedback on whether any of the proposals would adversely affect Aegir.
Comments
Comment #1
Xen CreditAttribution: Xen commentedTo summarize:
The current behavior of the backend_invoke functions, when $integrate is FALSE, is to not output standard output, logging or setting errors.
This makes drush rather uninformative about what when wrong in backend commands.
The proposed fix:
All regular output from the backended command is immediately printed, whether integrating or not. The caller can use the -q switch to suppress this.
All logging from the backended is integrated into the log of the caller on the fly, regardless of the state of the integrate switch.
drush_set_error in the backended command will trigger a equivalent drush_set_error in the caller when integrate is TRUE, and do nothing if it's false.
The output, log and error will always be available in the data array returned by the backend_invoke commands.
Comment #2
anarcat CreditAttribution: anarcat commentedI think this is fine. We indeed do not use $integrate = FALSE nowhere I could find, and this issue has been bugging me for a looong time. :)
Good work.