The hook automatically fixes most code style mistakes and should be installed once with: ```sh ln -s ../../bin/pre-commit .git/hooks/pre-commit ```
		
			
				
	
	
		
			34 lines
		
	
	
		
			788 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			788 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
pass=true
 | 
						|
 | 
						|
files=$(git diff --cached --name-only --diff-filter=ACMR | grep -E '\.(php|phtml)$')
 | 
						|
if [ "$files" != "" ]; then
 | 
						|
 | 
						|
    # Run php syntax check before commit
 | 
						|
    while read -r file; do
 | 
						|
        php -l "$file"
 | 
						|
        if [ $? -ne 0 ]; then
 | 
						|
            pass=false
 | 
						|
        fi
 | 
						|
    done <<< "$files"
 | 
						|
 | 
						|
    # Run php-cs-fixer validation before commit
 | 
						|
    echo "$files" | xargs ./vendor/bin/php-cs-fixer fix --diff --config .php_cs.dist
 | 
						|
    if [ $? -ne 0 ]; then
 | 
						|
        pass=false
 | 
						|
    fi
 | 
						|
 | 
						|
    # Automatically add files that may have been fixed by php-cs-fixer
 | 
						|
    echo "$files" | xargs git add
 | 
						|
fi
 | 
						|
 | 
						|
if $pass; then
 | 
						|
    exit 0
 | 
						|
else
 | 
						|
    echo ""
 | 
						|
    echo "PRE-COMMIT HOOK FAILED:"
 | 
						|
    echo "Code style validation failed. Please fix errors and try committing again."
 | 
						|
    exit 1
 | 
						|
fi
 |