X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=update-source.sh;h=d956e7a763957b9d16d79fb913f0db8edd3115c5;hb=0ba58a58151a250459d2d5181ddc974fccf53e4f;hp=6b1e3a287de6a3cc9b144636f290e3251e18bc89;hpb=899100ff46062633ab93050c4e902fa48111b3d9;p=packages%2Feventum.git diff --git a/update-source.sh b/update-source.sh old mode 100644 new mode 100755 index 6b1e3a2..d956e7a --- a/update-source.sh +++ b/update-source.sh @@ -1,6 +1,7 @@ #!/bin/sh set -e dropin= +repo_url=https://github.com/eventum/eventum specfile=eventum.spec # Work in package dir @@ -9,22 +10,37 @@ cd "$dir" if [ -f "$1" ]; then rev=$1 - rev=${rev#eventum-*-r} + rev=${rev#eventum-*-} rev=${rev%.tar.gz} - echo "Using $rev..." - elif [ "$1" ]; then rev=$1 - echo "Using $rev..." +else + # use tarball from "snapshot" build + git fetch "$repo_url" refs/tags/snapshot + # save this under some local ref, so repeated calls don't have to fetch everything + git update-ref refs/keep-around/snapshot FETCH_HEAD + out=$(git show FETCH_HEAD -s) + tarball=$(echo "$out" | grep -o 'eventum-.*\.tar.gz') + url="$repo_url/releases/download/snapshot/$tarball" + test -f "$tarball" || wget -c $url + exec "$0" "$tarball" fi -oldrev=$(awk '/^%define[ ]+subver[ ]+/{print $NF}' $specfile) -if [ "$oldrev" != "$rev" ]; then - echo "Updating $specfile for $rev" - sed -i -e " - s/^\(%define[ \t]\+subver[ \t]\+\)[0-9]\+\$/\1$rev/ - " $specfile - ../builder -ncs -5 $specfile -else +subver=${rev%-*} +githash=${rev#*-g} + +echo "Using $rev (subver: $subver, githash: $githash)..." + +oldsubver=$(awk '/^%define[\t ]+subver[\t ]+/{print $NF}' $specfile) +oldgithash=$(awk '/^%define[\t ]+githash[\t ]+/{print $NF}' $specfile) +if [ "$oldsubver" = "$subver" -a "$oldgithash" = "$githash" ]; then echo "Already up to date" + exit 0 fi + +echo "Updating $specfile for $rev (subver: $subver, githash: $githash)..." +sed -i -re " + s/^[#%](define[ \t]+subver[ \t]+)[0-9]+\$/%\1$subver/ + s/^[#%](define[ \t]+githash[ \t]+)[0-9a-fg]+\$/%\1$githash/ +" $specfile +../builder -ncs -5 $specfile