#!/bin/bash NAME=$(basename $PWD) OWNER=$(sed -n '/^%global gh_owner/{s/.* //;p}' $NAME.spec) PROJECT=$(sed -n '/^%global gh_project/{s/.* //;p}' $NAME.spec) VERSION=$(sed -n '/^%global upstream_version/{s/.* //;p}' $NAME.spec) COMMIT=$(sed -n '/^%global gh_commit/{s/.* //;p}' $NAME.spec) SHORT=${COMMIT:0:7} echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION, Commit=$COMMIT\n" echo "Cloning..." git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT echo "Getting commit..." pushd $PROJECT-$COMMIT git checkout $COMMIT || exit 1 cp composer.json vendor/composer/installed.json ../ sed -e 's/"config": {/"config": {"platform": {"php": "7.4.0"},/' -i composer.json composer install --no-dev --optimize-autoloader mkdir data cp ${HOME}/.cache/bartlett/compatinfo-db.sqlite data php -r ' $pkgs = file_get_contents("vendor/composer/installed.json"); $pkgs = json_decode($pkgs, true); if (!is_array($pkgs) || !isset($pkgs["packages"])) { echo "cant decode json file\n"; exit(3); } $lic = []; foreach($pkgs["packages"] as $pkg) { printf("Provides: bundled(php-%s) = %s\n", str_replace(["/", "_"], ["-", "-"], $pkg["name"]), $pkg["version"]); $lic = array_merge($lic, $pkg["license"]); } sort($lic); printf("\nLicense: %s\n", implode(" and ", array_unique($lic)));' popd echo "Archiving..." tar czf $NAME-$VERSION-$SHORT.tgz --exclude-vcs $PROJECT-$COMMIT echo "Cleaning..." rm -rf $PROJECT-$COMMIT echo "Done."