add: install pre-commit hook with composer install

pull/9123/head
Luciano Righetti 2023-06-06 11:41:18 +02:00
parent 82f58273a7
commit 3fc90ae192
3 changed files with 38 additions and 3 deletions

View File

@ -14,7 +14,7 @@
"cakephp/plugin-installer": "^1.2",
"erusev/parsedown": "^1.7",
"mobiledetect/mobiledetectlib": "^2.8",
"pear/crypt_gpg": "^1.6"
"pear/crypt_gpg": "^1.6"
},
"require-dev": {
"cakephp/bake": "^2.0.3",
@ -48,7 +48,10 @@
}
},
"scripts": {
"post-install-cmd": "App\\Console\\Installer::postInstall",
"post-install-cmd": [
"App\\Console\\Installer::postInstall",
"bash scripts/pre-commit/install-pre-commit.sh"
],
"post-create-project-cmd": "App\\Console\\Installer::postInstall",
"check": [
"@test",
@ -77,4 +80,4 @@
}
},
"minimum-stability": "dev"
}
}

View File

@ -0,0 +1,3 @@
#! /usr/bin/env bash
cp scripts/pre-commit/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
C_RESET='\e[0m'
C_RED='\e[31m'
C_GREEN='\e[32m'
C_YELLOW='\e[33m'
function __run() { #(step, name, cmd)
local color output exitcode
printf "${C_YELLOW}[%s]${C_RESET} %-20s" "$1" "$2"
output=$(eval "$3" 2>&1)
exitcode=$?
if [[ 0 == $exitcode || 130 == $exitcode ]]; then
echo -e "${C_GREEN}OK!${C_RESET}"
else
echo -e "${C_RED}NOK!${C_RESET}\n\n$output"
exit 1
fi
}
modified="git diff --diff-filter=M --name-only --cached | grep \".php$\""
phpcs="vendor/bin/phpcs --report=code --colors --report-width=80"
phpcbf="vendor/bin/phpcbf"
__run "1/3" "code beautifier" "${modified} | xargs -r ${phpcbf}"
__run "2/3" "code sniffer" "${modified} | xargs -r ${phpcs}"
__run "3/3" "phpstan" "${modified} | xargs -r vendor/bin/phpstan analyse"