github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/pkg/ddevapp/global_dotddev_assets/commands/web/blackfire (about) 1 #!/bin/bash 2 3 #ddev-generated: Remove this line to take over this script 4 ## Description: Enable or disable blackfire.io profiling 5 ## Usage: blackfire start|stop|on|off|enable|disable|true|false|status 6 ## Example: "ddev blackfire" (default is "on"), "ddev blackfire off", "ddev blackfire on", "ddev blackfire status" 7 ## ExecRaw: false 8 ## Flags: [] 9 ## AutocompleteTerms: ["start","stop","on","off","enable","disable","status"] 10 11 function enable { 12 if [ -z ${BLACKFIRE_SERVER_ID} ] || [ -z ${BLACKFIRE_SERVER_TOKEN} ]; then 13 echo "BLACKFIRE_SERVER_ID and BLACKFIRE_SERVER_TOKEN environment variables must be set" >&2 14 echo "See docs for how to set in global or project config" >&2 15 echo "For example, ddev config global --web-environment-add=BLACKFIRE_SERVER_ID=<id>,BLACKFIRE_SERVER_TOKEN=<token>" 16 exit 1 17 fi 18 phpdismod xhprof xdebug 19 phpenmod blackfire 20 killall -USR2 php-fpm && killall -HUP nginx 21 # Can't use killall here because it kills this process! 22 pid=$(ps -ef | awk '$8~/^blackfire.*/ { print $2 }' 2>/dev/null) 23 if [ "${pid}" != "" ]; then kill $pid; fi 24 nohup blackfire agent:start --log-level=4 >/tmp/blackfire_nohup.out 2>&1 & 25 sleep 1 26 echo "Enabled blackfire PHP extension and started blackfire agent" 27 exit 28 } 29 function disable { 30 phpdismod blackfire 31 killall -USR2 php-fpm 32 # Can't use killall here because it kills this process! 33 pid=$(ps -ef | awk '$8~/^blackfire.*/ { print $2 }' 2>/dev/null) 34 if [ "${pid}" != "" ]; then kill ${pid}; fi 35 echo "Disabled blackfire PHP extension and stopped blackfire agent" 36 exit 37 } 38 39 40 if [ $# -eq 0 ] ; then 41 enable 42 fi 43 44 case $1 in 45 on|true|enable|start) 46 disable_xdebug 47 enable 48 ;; 49 off|false|disable|stop) 50 disable 51 ;; 52 status) 53 php --version | grep "with blackfire" >/dev/null 2>&1 54 phpstatus=$? 55 # Can't use killall here because it kills this process! 56 agentstatus=$(ps -ef | awk '$8~/^blackfire.*/ { print $2 }' 2>/dev/null) 57 if [ ${phpstatus} -eq 0 ]; then echo "blackfire PHP extension enabled"; else echo "blackfire PHP extension disabled"; fi 58 if [ "${agentstatus}" != "" ]; then echo "blackfire agent running"; else echo "blackfire agent not running"; fi 59 if [ ${phpstatus} -eq 0 ]; then printf "probe version %s\n" "$(php -v | awk -F '[ ,\~]+' '/blackfire/{ print $4; }')"; fi 60 printf "blackfire version %s\n" "$(blackfire version | awk '{print $3;}')" 61 ;; 62 63 *) 64 echo "Invalid argument: $1" 65 ;; 66 esac