summaryrefslogtreecommitdiffstats
path: root/makesrc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'makesrc.sh')
-rwxr-xr-xmakesrc.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/makesrc.sh b/makesrc.sh
new file mode 100755
index 0000000..327123d
--- /dev/null
+++ b/makesrc.sh
@@ -0,0 +1,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 install --no-dev --optimize-autoloader
+ cp composer.json vendor/composer/installed.json ../
+
+ 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."
+