php-cs-fixer/makesrc.sh
Remi Collet 13a076da08 v3.69.0
2025-02-17 08:38:44 +01:00

40 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
NAME=$(sed -n '/^Name:/{s/.* //;p}' *.spec)
DATE=$(sed -n '/^%global gh_date/{s/.* //;p}' $NAME.spec)
OWNER=$(sed -n '/^%global gh_owner/{s/.* //;p}' $NAME.spec)
PROJECT=$(sed -n '/^%global gh_project/{s/.* //;p}' $NAME.spec)
VERSION=$(sed -n '/^Version:/{s/.* //;p}' $NAME.spec)
COMMIT=$(sed -n '/^%global gh_commit/{s/.* //;p}' $NAME.spec)
SHORT=${COMMIT:0:7}
DATE=$(date -d "$DATE -4 days" +%Y-%m-%d)
if [ -f $NAME-$VERSION-$SHORT.tgz ]; then
echo "Skip $NAME-$VERSION-$SHORT.tgz"
else
echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION, Commit=$COMMIT, Date=$DATE\n"
echo "Cloning..."
git clone --shallow-since=$DATE https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT || exit 1
echo "Getting commit..."
pushd $PROJECT-$COMMIT
git checkout $COMMIT || exit1
cp composer.json ../
composer config platform.php 8.1.99
# see https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/dev-tools/build.sh
# some dev dep cannot be satisfied but are not needed
composer remove --dev infection/infection --no-update
composer install --no-interaction --no-progress --no-dev --no-scripts --optimize-autoloader
cp vendor/composer/installed.json ../
popd
echo "Archiving..."
tar czf $NAME-$VERSION-$SHORT.tgz --exclude .git $PROJECT-$COMMIT
echo "Cleaning..."
rm -rf $PROJECT-$COMMIT
fi