2016-08-17 08:34:40 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2024-05-27 10:08:53 +02:00
|
|
|
# SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
|
|
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
|
2020-11-26 15:47:33 +01:00
|
|
|
COMPOSER_COMMAND="php composer.phar"
|
|
|
|
|
|
|
|
if [ -e "composer.phar" ]
|
2016-08-17 08:34:40 +02:00
|
|
|
then
|
2020-11-26 15:47:33 +01:00
|
|
|
echo "Composer found: checking for update"
|
|
|
|
$COMPOSER_COMMAND self-update
|
2016-08-17 08:34:40 +02:00
|
|
|
else
|
2020-11-26 15:47:33 +01:00
|
|
|
echo "Composer not found: fetching"
|
|
|
|
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
2020-12-04 10:11:02 +01:00
|
|
|
php composer-setup.php --2
|
2020-11-26 15:47:33 +01:00
|
|
|
php -r "unlink('composer-setup.php');"
|
2016-08-17 08:34:40 +02:00
|
|
|
fi
|
|
|
|
|
2017-01-05 11:01:59 +01:00
|
|
|
|
2023-04-21 15:53:06 +02:00
|
|
|
COMPOSER_VERSION=$($COMPOSER_COMMAND --version | cut -d" " -f3)
|
|
|
|
COMPOSER_MAJOR_VERSION=$(echo "$COMPOSER_VERSION" | cut -d"." -f1)
|
|
|
|
COMPOSER_MINOR_VERSION=$(echo "$COMPOSER_VERSION" | cut -d"." -f2)
|
|
|
|
COMPOSER_PATCH_VERSION=$(echo "$COMPOSER_VERSION" | cut -d"." -f3)
|
|
|
|
|
|
|
|
if ! [ "$COMPOSER_MAJOR_VERSION" -gt 2 -o \( "$COMPOSER_MAJOR_VERSION" -eq 2 -a "$COMPOSER_MINOR_VERSION" -ge 6 \) -o \( "$COMPOSER_MAJOR_VERSION" -eq 2 -a "$COMPOSER_MINOR_VERSION" -eq 5 -a "$COMPOSER_PATCH_VERSION" -ge 5 \) ]; then
|
|
|
|
echo "composer version >= 2.5.5 required. Version found: $COMPOSER_VERSION" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2016-08-17 08:34:40 +02:00
|
|
|
REPODIR=`git rev-parse --show-toplevel`
|
|
|
|
|
2017-10-17 21:55:06 +02:00
|
|
|
#Redump the main autoloader
|
2016-08-17 08:34:40 +02:00
|
|
|
echo
|
2017-10-17 21:55:06 +02:00
|
|
|
echo "Regenerating main autoloader"
|
2017-01-05 11:01:59 +01:00
|
|
|
$COMPOSER_COMMAND dump-autoload -d $REPODIR
|
2016-08-17 08:34:40 +02:00
|
|
|
|
2025-04-09 18:24:49 +02:00
|
|
|
FOUND_COMPOSER_BIN=$(grep --recursive --fixed-strings 'Bamarni\\Composer\\Bin' $REPODIR/lib/composer/composer/)
|
|
|
|
if [ -n "$FOUND_COMPOSER_BIN" ]; then
|
|
|
|
echo "The main autoloader contains the composer bin plugin"
|
|
|
|
echo "Run composer again with --no-dev and commit the result"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2017-10-17 21:55:06 +02:00
|
|
|
for app in ${REPODIR}/apps/*; do
|
2023-01-12 10:26:26 +01:00
|
|
|
if git check-ignore ${app} -q ; then
|
|
|
|
echo
|
|
|
|
echo "${app} is not shipped. Ignoring autoloader regeneration"
|
|
|
|
continue
|
|
|
|
fi
|
2017-10-17 21:55:06 +02:00
|
|
|
if [[ -d $app ]]; then
|
2023-01-12 10:31:36 +01:00
|
|
|
echo
|
|
|
|
echo "Regenerating composer files for ${app}"
|
|
|
|
$COMPOSER_COMMAND i --no-dev -d ${app}/composer || exit 1
|
|
|
|
$COMPOSER_COMMAND dump-autoload -d ${app}/composer || exit 1
|
2024-10-17 09:20:36 +02:00
|
|
|
git checkout ${app}/composer/composer/installed.php
|
2017-10-17 21:55:06 +02:00
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2016-08-17 08:34:40 +02:00
|
|
|
files=`git diff --name-only`
|
|
|
|
composerfile=false
|
|
|
|
for file in $files
|
|
|
|
do
|
2017-10-17 21:55:06 +02:00
|
|
|
if [[ $file == *autoload_classmap* ]]
|
2016-08-17 08:34:40 +02:00
|
|
|
then
|
|
|
|
composerfile=true
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2020-12-02 15:02:56 +01:00
|
|
|
rm composer.phar
|
|
|
|
|
2016-08-17 08:34:40 +02:00
|
|
|
echo
|
|
|
|
if [ $composerfile = true ]
|
|
|
|
then
|
2017-10-17 21:55:06 +02:00
|
|
|
echo "The autoloaders are not up to date"
|
2016-08-17 08:34:40 +02:00
|
|
|
echo "Please run: bash build/autoloaderchecker.sh"
|
|
|
|
echo "And commit the result"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo "Autoloader up to date. Carry on"
|
|
|
|
exit 0
|
|
|
|
fi
|