build-support/php: set COMPOSER_ROOT_VERSION by default

This commit is contained in:
Pol Dellaiera 2024-02-19 10:14:19 +01:00
parent 2a34566b67
commit f43fb4c110
No known key found for this signature in database
GPG key ID: D476DFE9C67467CA
4 changed files with 38 additions and 6 deletions

View file

@ -9,6 +9,8 @@ preBuildHooks+=(composerInstallBuildHook)
preCheckHooks+=(composerInstallCheckHook)
preInstallHooks+=(composerInstallInstallHook)
source @phpScriptUtils@
composerInstallConfigureHook() {
echo "Executing composerInstallConfigureHook"
@ -22,6 +24,8 @@ composerInstallConfigureHook() {
fi
if [[ ! -f "composer.lock" ]]; then
setComposeRootVersion
composer \
--no-ansi \
--no-install \
@ -75,6 +79,8 @@ composerInstallConfigureHook() {
composerInstallBuildHook() {
echo "Executing composerInstallBuildHook"
setComposeRootVersion
# Since this file cannot be generated in the composer-repository-hook.sh
# because the file contains hardcoded nix store paths, we generate it here.
composer-local-repo-plugin --no-ansi build-local-repo -m "${composerRepository}" .
@ -90,7 +96,6 @@ composerInstallBuildHook() {
# Since the composer.json file has been modified in the previous step, the
# composer.lock file needs to be updated.
COMPOSER_ROOT_VERSION="${version}" \
composer \
--lock \
--no-ansi \
@ -134,11 +139,10 @@ composerInstallCheckHook() {
composerInstallInstallHook() {
echo "Executing composerInstallInstallHook"
setComposeRootVersion
# Finally, run `composer install` to install the dependencies and generate
# the autoloader.
# The COMPOSER_ROOT_VERSION environment variable is needed only for
# vimeo/psalm.
COMPOSER_ROOT_VERSION="${version}" \
composer \
--no-ansi \
--no-interaction \

View file

@ -10,6 +10,8 @@ preBuildHooks+=(composerRepositoryBuildHook)
preCheckHooks+=(composerRepositoryCheckHook)
preInstallHooks+=(composerRepositoryInstallHook)
source @phpScriptUtils@
composerRepositoryConfigureHook() {
echo "Executing composerRepositoryConfigureHook"
@ -18,7 +20,8 @@ composerRepositoryConfigureHook() {
fi
if [[ ! -f "composer.lock" ]]; then
COMPOSER_ROOT_VERSION="${version}" \
setComposeRootVersion
composer \
--no-ansi \
--no-install \
@ -55,6 +58,8 @@ composerRepositoryBuildHook() {
mkdir -p repository
setComposeRootVersion
# Build the local composer repository
# The command 'build-local-repo' is provided by the Composer plugin
# nix-community/composer-local-repo-plugin.

View file

@ -2,18 +2,28 @@
, makeSetupHook
, diffutils
, jq
, writeShellApplication
, moreutils
, makeBinaryWrapper
, cacert
, buildPackages
}:
let
php-script-utils = writeShellApplication {
name = "php-script-utils";
runtimeInputs = [ jq ];
text = builtins.readFile ./php-script-utils.bash;
};
in
{
composerRepositoryHook = makeSetupHook
{
name = "composer-repository-hook.sh";
propagatedBuildInputs = [ jq moreutils cacert ];
substitutions = { };
substitutions = {
phpScriptUtils = lib.getExe php-script-utils;
};
} ./composer-repository-hook.sh;
composerInstallHook = makeSetupHook
@ -24,6 +34,7 @@
# Specify the stdenv's `diff` by abspath to ensure that the user's build
# inputs do not cause us to find the wrong `diff`.
cmp = "${lib.getBin buildPackages.diffutils}/bin/cmp";
phpScriptUtils = lib.getExe php-script-utils;
};
} ./composer-install-hook.sh;
}

View file

@ -0,0 +1,12 @@
declare version
setComposeRootVersion() {
set +e # Disable exit on error
if [[ -v version ]]; then
echo -e "\e[32mSetting COMPOSER_ROOT_VERSION to $version\e[0m"
export COMPOSER_ROOT_VERSION=$version
fi
set -e
}