Skip to content

Commit

Permalink
feat: add toggle arg to xdebug command, fixes ddev#3593
Browse files Browse the repository at this point in the history
  • Loading branch information
GuySartorelli committed Dec 13, 2023
1 parent 7a36623 commit 50a8a95
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
16 changes: 16 additions & 0 deletions cmd/ddev/cmd/xdebug_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,22 @@ func TestCmdXdebug(t *testing.T) {
assert.NoError(err)
assert.Contains(string(out), "xdebug disabled")

out, err = exec.RunHostCommand(DdevBin, "xdebug", "toggle")
assert.NoError(err)
assert.Contains(string(out), "Enabled xdebug")

out, err = exec.RunHostCommand(DdevBin, "xdebug", "status")
assert.NoError(err)
assert.Contains(string(out), "xdebug enabled")

out, err = exec.RunHostCommand(DdevBin, "xdebug", "toggle")
assert.NoError(err)
assert.Contains(string(out), "Disabled xdebug")

out, err = exec.RunHostCommand(DdevBin, "xdebug", "status")
assert.NoError(err)
assert.Contains(string(out), "xdebug disabled")

_, err = exec.RunHostCommand(DdevBin, "stop")
assert.NoError(err, "Failed ddev stop with php=%v: %v", phpVersion, err)
}
Expand Down
27 changes: 25 additions & 2 deletions pkg/ddevapp/global_dotddev_assets/commands/web/xdebug
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## #ddev-generated
## Description: Enable or disable xdebug
## Usage: xdebug on|off|enable|disable|true|false|status
## Example: "ddev xdebug" (default is "on"), "ddev xdebug off", "ddev xdebug on", "ddev xdebug status"
## Usage: xdebug on|off|enable|disable|true|false|toggle|status
## Example: "ddev xdebug" (default is "on"), "ddev xdebug off", "ddev xdebug on", "ddev xdebug toggle", "ddev xdebug status"
## Execraw: false
## Flags: []

Expand All @@ -21,6 +21,29 @@ case $1 in
off|false|disable)
disable_xdebug
;;
toggle)
case ${xdebug_version} in
v3*)
status=$(php -r 'echo ini_get("xdebug.mode");' 2>/dev/null)
if [[ "${status}" =~ .*"debug".* ]]; then
disable_xdebug
else
enable_xdebug
fi
;;
v2*)
status=$(php -r 'echo ini_get("xdebug.remote_enable");')
if [ "${status}" = "1" ]; then
disable_xdebug
else
enable_xdebug
fi
;;
*)
enable_xdebug
;;
esac
;;
status)
case ${xdebug_version} in
v3*)
Expand Down

0 comments on commit 50a8a95

Please sign in to comment.