run-php-cs-fixer.sh 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. #
  3. # Usage:
  4. # Optionally set COMPOSER_CMD to the command to use to run composer.
  5. # Optionally set COMPOSER_VENDOR_DIR to your vendor path for composer.
  6. #
  7. # Run php-cs-fixer by calling this script:
  8. # ./run-php-cs-fixer.sh check # Only checks (not available with PHP 7.0)
  9. # ./run-php-cs-fixer.sh fix # Fixes
  10. #
  11. # You can fix only a few files using
  12. # ./run-php-cs-fixer.sh fix htdocs/path/to/myfile.php
  13. #
  14. # You can run this from the root directory of dolibarr
  15. # dev/tools/run-php-cs-fixer.sh fix htdocs/path/to/myfile.php
  16. #
  17. # You can provide the environment variables on the CLI like this:
  18. # COMPOSER_CMD="php ~/composer.phar" COMPOSER_VENDOR_DIR="~/vendor" ./run-php-cs-fixer.sh
  19. #
  20. # or export them:
  21. # export COMPOSER_CMD="~/composer.phar"
  22. # export COMPOSER_VENDOR_DIR="~/vendor"
  23. # ./run-php-cs-fixer.sh
  24. #
  25. # Or some other method
  26. #
  27. MYDIR=$(dirname "$(realpath "$0")")
  28. export COMPOSER_VENDOR_DIR=${COMPOSER_VENDOR_DIR:=$MYDIR/vendor}
  29. COMPOSER_CMD=${COMPOSER_CMD:composer}
  30. MINPHPVERSION="7.0"
  31. echo "***** run-php-cs-fixer.sh *****"
  32. if [ "x$1" = "x" ]; then
  33. echo "Syntax: run-php-cs-fixer.sh check|fix [path_from_root_project]"
  34. exit 1;
  35. fi
  36. #
  37. # Check composer is available
  38. #
  39. if [ ! -r "${COMPOSER_CMD}" ] ; then
  40. echo composer is not available or not in path. You can give the path of composer by setting COMPOSER_CMD=/pathto/composer
  41. echo Example: export COMPOSER_CMD="~/composer.phar"
  42. echo Example: export COMPOSER_CMD="/usr/local/bin/composer"
  43. exit 1;
  44. fi
  45. #
  46. # Install/update php-cs-fixer
  47. #
  48. echo Install php-cs-fixer
  49. PHP_CS_FIXER="${COMPOSER_VENDOR_DIR}/bin/php-cs-fixer"
  50. if [ ! -r "${PHP_CS_FIXER}" ] ; then
  51. [[ ! -e "${COMPOSER_VENDOR_DIR}" ]] && ${COMPOSER_CMD} install
  52. [[ -e "${COMPOSER_VENDOR_DIR}" ]] && ${COMPOSER_CMD} update
  53. php${MINPHPVERSION} ${COMPOSER_CMD} require --dev friendsofphp/php-cs-fixer
  54. echo
  55. fi
  56. # With PHP 7.0, php-cs-fixer is V2 (command check not supported)
  57. # With PHP 8.2, php-cs-fixer is V3
  58. (
  59. echo cd "${MYDIR}/../../.."
  60. cd "${MYDIR}/../../.." || exit
  61. CMD=
  62. # If no argument, run check by default
  63. [[ "$1" == "" ]] && CMD=check
  64. # shellcheck disable=SC2086
  65. echo php${MINPHPVERSION} "${PHP_CS_FIXER}" $CMD "$@"
  66. php${MINPHPVERSION} "${PHP_CS_FIXER}" $CMD "$@"
  67. )