diff --git a/.woodpecker/.code_standards_check.yml b/.woodpecker/.code_standards_check.yml index e6b02c3d7d..1217ea3f0b 100644 --- a/.woodpecker/.code_standards_check.yml +++ b/.woodpecker/.code_standards_check.yml @@ -39,6 +39,7 @@ steps: check: image: php:8.3 commands: + - echo "**** Use bin/dev/fix-codestyle.sh in case of errors ****" - apt-get update -q - DEBIAN_FRONTEND=noninteractive apt-get install -q -y git - if [ ! -z "$${CI_COMMIT_PULL_REQUEST}" ]; then diff --git a/bin/dev/fix-codestyle.sh b/bin/dev/fix-codestyle.sh new file mode 100755 index 0000000000..3a66b2ec8c --- /dev/null +++ b/bin/dev/fix-codestyle.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# SPDX-FileCopyrightText: 2010-2025 the Friendica project +# +# SPDX-License-Identifier: AGPL-3.0-or-later +# +# this script checks or fixes php-files, based on the php-cs rules +# +# You can use the following variables: +# COMMAND ... the php-cs command to execute (default is "check --diff") +# TARGET_BRANCH ... set the target branch for the current branch to create a diff between them +# +## + +COMMAND=${COMMAND:-"check --diff"} + +if [ -n "${TARGET_BRANCH}" ]; then + CHANGED_FILES="$(git diff --name-only --diff-filter=ACMRTUXB "$(git ls-remote -q | grep refs/heads/"${TARGET_BRANCH}"$ | awk '{print $1}' | xargs git rev-parse )".."$(git rev-parse HEAD)")"; +else + CHANGED_FILES="$(git diff --name-only --diff-filter=ACMRTUXB "$(git rev-parse HEAD)")"; +fi + +EXTRA_ARGS=$(printf -- '--path-mode=intersection\n--\n%s' "${CHANGED_FILES}"); + +./bin/dev/php-cs-fixer/vendor/bin/php-cs-fixer ${COMMAND} --config=.php-cs-fixer.dist.php -v --using-cache=no ${EXTRA_ARGS}