diff --git a/.gitignore b/.gitignore index 39362b3482..1b4dde18b0 100644 --- a/.gitignore +++ b/.gitignore @@ -43,11 +43,12 @@ vendor/ .DS_store? ############ -## Config overrides for CS tools +## Config overrides for tools ############ phpcs.xml phpunit.xml phpstan.neon +wp-cli.local.yml ############ ## Misc diff --git a/.wp-env.json b/.wp-env.json index 2c652e636f..7582528722 100644 --- a/.wp-env.json +++ b/.wp-env.json @@ -11,6 +11,9 @@ "./plugins/web-worker-offloading", "./plugins/webp-uploads" ], + "lifecycleScripts": { + "afterStart": "bin/update-wp-cli-local-ssh.sh" + }, "env": { "tests": { "config": { diff --git a/bin/update-wp-cli-local-ssh.sh b/bin/update-wp-cli-local-ssh.sh new file mode 100755 index 0000000000..c347e2c3de --- /dev/null +++ b/bin/update-wp-cli-local-ssh.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# This script is intended to be run as the lifecycleScripts.afterStart script. + +set -e + +cd "$(dirname "$0")/.." + +wp_cli_config_file="wp-cli.local.yml" + +if [ ! -e "$wp_cli_config_file" ]; then + echo "path: /var/www/html" >> "$wp_cli_config_file" +fi + +hash=$(basename "$(npm run --silent wp-env install-path 2>/dev/null)") +container_id=$(docker ps --format "{{.ID}} {{.Names}}" | grep "$hash-cli" | awk '{print $1}') + +grep -v 'ssh:' < "$wp_cli_config_file" > "$wp_cli_config_file-next" + +echo "ssh: docker:$container_id" >> "$wp_cli_config_file-next" +mv "$wp_cli_config_file-next" "$wp_cli_config_file" + +echo "Container ID for cli: $container_id"