summaryrefslogtreecommitdiffstats
path: root/makesrc.sh
blob: c0e118c031d0e56540c451de5cad874a4a7f750a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/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."