Changed to `docker ps` because this one word wraps. `docker-compose ps` will create a newline if text is too long in a small terminal window. Also `awk` represents tokens better than ones created with a " " delimiter.
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#! /bin/bash
 | 
						|
 | 
						|
# NOTE: At the moment, this has only been confirmed to work with PHP 7
 | 
						|
 | 
						|
 | 
						|
# Grab full name of php-fpm container
 | 
						|
PHP_FPM_CONTAINER=$(docker ps | grep php-fpm | awk '{print $1}')
 | 
						|
 | 
						|
 | 
						|
# Grab OS type
 | 
						|
if [[ "$(uname)" == "Darwin" ]]; then
 | 
						|
    OS_TYPE="OSX"
 | 
						|
else
 | 
						|
    OS_TYPE=$(expr substr $(uname -s) 1 5)
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
xdebug_status ()
 | 
						|
{
 | 
						|
    echo 'xDebug status'
 | 
						|
 | 
						|
    # If running on Windows, need to prepend with winpty :(
 | 
						|
    if [[ $OS_TYPE == "MINGW" ]]; then
 | 
						|
        winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
 | 
						|
 | 
						|
    else
 | 
						|
        docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
 | 
						|
    fi
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
xdebug_start ()
 | 
						|
{
 | 
						|
    echo 'Start xDebug'
 | 
						|
 | 
						|
    # And uncomment line with xdebug extension, thus enabling it
 | 
						|
    ON_CMD="sed -i 's/^;zend_extension=/zend_extension=/g' \
 | 
						|
                    /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini"
 | 
						|
 | 
						|
 | 
						|
    # If running on Windows, need to prepend with winpty :(
 | 
						|
    if [[ $OS_TYPE == "MINGW" ]]; then
 | 
						|
        winpty docker exec -it $PHP_FPM_CONTAINER bash -c "${ON_CMD}"
 | 
						|
        docker restart $PHP_FPM_CONTAINER
 | 
						|
        winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
 | 
						|
 | 
						|
    else
 | 
						|
        docker exec -it $PHP_FPM_CONTAINER bash -c "${ON_CMD}"
 | 
						|
        docker restart $PHP_FPM_CONTAINER
 | 
						|
        docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
xdebug_stop ()
 | 
						|
{
 | 
						|
    echo 'Stop xDebug'
 | 
						|
 | 
						|
    # Comment out xdebug extension line
 | 
						|
    OFF_CMD="sed -i 's/^zend_extension=/;zend_extension=/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini"
 | 
						|
 | 
						|
 | 
						|
    # If running on Windows, need to prepend with winpty :(
 | 
						|
    if [[ $OS_TYPE == "MINGW" ]]; then
 | 
						|
        # This is the equivalent of:
 | 
						|
        # winpty docker exec -it laradock_php-fpm_1 bash -c 'bla bla bla'
 | 
						|
        # Thanks to @michaelarnauts at https://github.com/docker/compose/issues/593
 | 
						|
        winpty docker exec -it $PHP_FPM_CONTAINER bash -c "${OFF_CMD}"
 | 
						|
        docker restart $PHP_FPM_CONTAINER
 | 
						|
        #docker-compose restart php-fpm
 | 
						|
        winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
 | 
						|
 | 
						|
    else
 | 
						|
        docker exec -it $PHP_FPM_CONTAINER bash -c "${OFF_CMD}"
 | 
						|
        # docker-compose restart php-fpm
 | 
						|
        docker restart $PHP_FPM_CONTAINER
 | 
						|
        docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
case $@ in
 | 
						|
    stop|STOP)
 | 
						|
        xdebug_stop
 | 
						|
        ;;
 | 
						|
    start|START)
 | 
						|
        xdebug_start
 | 
						|
        ;;
 | 
						|
    status|STATUS)
 | 
						|
        xdebug_status
 | 
						|
        ;;
 | 
						|
    *)
 | 
						|
        echo "xDebug [Stop | Start | Status] in the ${PHP_FPM_CONTAINER} container."
 | 
						|
        echo "xDebug must have already been installed."
 | 
						|
        echo "Usage:"
 | 
						|
        echo "  ./xdebugPhpFpm stop|start|status"
 | 
						|
 | 
						|
esac
 | 
						|
 | 
						|
exit 1
 |