diff options
Diffstat (limited to 'nixpkgs/pkgs/build-support/php/hooks/composer-repository-hook.sh')
-rw-r--r-- | nixpkgs/pkgs/build-support/php/hooks/composer-repository-hook.sh | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/nixpkgs/pkgs/build-support/php/hooks/composer-repository-hook.sh b/nixpkgs/pkgs/build-support/php/hooks/composer-repository-hook.sh index 2c35b11b73b4..03783d9d639c 100644 --- a/nixpkgs/pkgs/build-support/php/hooks/composer-repository-hook.sh +++ b/nixpkgs/pkgs/build-support/php/hooks/composer-repository-hook.sh @@ -3,6 +3,7 @@ declare version declare composerNoDev declare composerNoPlugins declare composerNoScripts +declare composerStrictValidation preConfigureHooks+=(composerRepositoryConfigureHook) preBuildHooks+=(composerRepositoryBuildHook) @@ -31,14 +32,16 @@ composerRepositoryConfigureHook() { cp composer.lock $out/ echo - echo 'No composer.lock file found, consider adding one to your repository to ensure reproducible builds.' - echo "In the meantime, a composer.lock file has been generated for you in $out/composer.lock" + echo -e "\e[31mERROR: No composer.lock found\e[0m" echo - echo 'To fix the issue:' - echo "1. Copy the composer.lock file from $out/composer.lock to the project's source:" - echo " cp $out/composer.lock <path>" - echo '2. Add the composerLock attribute, pointing to the copied composer.lock file:' - echo ' composerLock = ./composer.lock;' + echo -e '\e[31mNo composer.lock file found, consider adding one to your repository to ensure reproducible builds.\e[0m' + echo -e "\e[31mIn the meantime, a composer.lock file has been generated for you in $out/composer.lock\e[0m" + echo + echo -e '\e[31mTo fix the issue:\e[0m' + echo -e "\e[31m1. Copy the composer.lock file from $out/composer.lock to the project's source:\e[0m" + echo -e "\e[31m cp $out/composer.lock <path>\e[0m" + echo -e '\e[31m2. Add the composerLock attribute, pointing to the copied composer.lock file:\e[0m' + echo -e '\e[31m composerLock = ./composer.lock;\e[0m' echo exit 1 @@ -63,7 +66,26 @@ composerRepositoryBuildHook() { composerRepositoryCheckHook() { echo "Executing composerRepositoryCheckHook" - composer validate --no-ansi --no-interaction + if ! composer validate --strict --no-ansi --no-interaction --quiet; then + if [ ! -z "${composerStrictValidation-}" ]; then + echo + echo -e "\e[31mERROR: composer files validation failed\e[0m" + echo + echo -e '\e[31mThe validation of the composer.json and composer.lock failed.\e[0m' + echo -e '\e[31mMake sure that the file composer.lock is consistent with composer.json.\e[0m' + echo + exit 1 + else + echo + echo -e "\e[33mWARNING: composer files validation failed\e[0m" + echo + echo -e '\e[33mThe validation of the composer.json and composer.lock failed.\e[0m' + echo -e '\e[33mMake sure that the file composer.lock is consistent with composer.json.\e[0m' + echo + echo -e '\e[33mThis check is not blocking, but it is recommended to fix the issue.\e[0m' + echo + fi + fi echo "Finished composerRepositoryCheckHook" } |