github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/pkg/ddevapp/global_dotddev_assets/commands/web/xdebug (about) 1 #!/bin/bash 2 3 ## #ddev-generated 4 ## Description: Enable or disable xdebug 5 ## Usage: xdebug on|off|enable|disable|true|false|toggle|status 6 ## Example: "ddev xdebug" (default is "on"), "ddev xdebug off", "ddev xdebug on", "ddev xdebug toggle", "ddev xdebug status" 7 ## Execraw: false 8 ## Flags: [] 9 ## AutocompleteTerms: ["on","off","enable","disable","toggle","status"] 10 11 if [ $# -eq 0 ] ; then 12 enable_xdebug 13 exit 14 fi 15 16 xdebug_version=$(php --version | awk '/Xdebug v/ {print $3}') 17 18 get_xdebug_status() { 19 case ${xdebug_version} in 20 v3*) 21 status=$(php -r 'echo ini_get("xdebug.mode");' 2>/dev/null) 22 if [[ "${status}" =~ .*"debug".* ]]; then 23 echo "1" 24 else 25 echo "0" 26 fi 27 ;; 28 v2*) 29 echo $(php -r 'echo ini_get("xdebug.remote_enable");') 30 ;; 31 *) 32 echo "0" 33 ;; 34 esac 35 } 36 37 case $1 in 38 on|true|enable) 39 enable_xdebug 40 ;; 41 off|false|disable) 42 disable_xdebug 43 ;; 44 toggle) 45 status=$(get_xdebug_status) 46 if [ "${status}" = "1" ]; then 47 disable_xdebug 48 else 49 enable_xdebug 50 fi 51 ;; 52 status) 53 status=$(get_xdebug_status) 54 if [ "${status}" = "1" ]; then 55 result="xdebug enabled" 56 else 57 result="xdebug disabled" 58 fi 59 echo $result 60 ;; 61 *) 62 echo "Invalid argument: $1" 63 ;; 64 esac