You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
docker exec and docker-compose exec provide an option to cleanly set the working directory before running a command
=> Use it instead and use cd <...> ; command-prefixing in vagrant/ssh cases
cleanly set the working directory before running a command
=> Use it instead and use `cd <...> ;` command-prefixing in vagrant/ssh cases
2. Using `docker` scheme, `wp post update 1 - <<<foo` didn't worked (issue wp-cli#4972)
* Because STDOUT being a tty, `-t` is passed with no ability to inhibit this
* Because docker `-i` flag is necessary
=> As such:
* docker `-i` (`--interactive`) is introduced (with sensible autodetection)
* `WP_CLI_DOCKER_NO_TTY` and `WP_CLI_DOCKER_NO_INTERACTIVE` environment variables
are introduced to optionally inhibit these respective flags
I already tested this in the past, and while it seemed to do what it is supposed to do, I was unsure at the time whether I considered all implications and tested all edge cases.
However, this has waiting for long enough already. Let's merge it as-is, I'm sure the edge cases will show themselves on their own accord then... ;)
When I try `wp --debug --ssh=docker:user@wordpress --version`
Then STDERR should contain:
"""
Running SSH command: docker exec --user 'user' 'wordpress' sh -c
"""
The tests pass locally because $is_stdin_tty = function_exists( 'posix_isatty' ) ? posix_isatty( STDIN ) : true;
Will return true because STDIN is attached to your local terminal which is a TTY.
You can reproduce the CI failure by piping the test through cat which will remove the tty:
The test should probably be updated and include the environment variables so the output is the same across local and ci testing. I think otherwise it would require creating a new custom step to check for tty if we really wanted to test the tty detection as well.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docker exec
anddocker-compose exec
provide an option to cleanly set the working directory before running a command=> Use it instead and use
cd <...> ;
command-prefixing in vagrant/ssh casesUsing
docker
scheme,wp post update 1 - <<<foo
didn't worked (issue passing stdin to command for docker-based WP instancesΒ #4972)-t
is passed with no ability to inhibit this-i
flag is necessary=> As such:
-i
(--interactive
) is introduced (with sensible autodetection)WP_CLI_DOCKER_NO_TTY
andWP_CLI_DOCKER_NO_INTERACTIVE
environment variables are introduced to optionally inhibit these respective flags