]> git.pld-linux.org Git - packages/google-chrome.git/blob - update-source.sh
fetch x86_64, it's updated sooner than i386
[packages/google-chrome.git] / update-source.sh
1 #!/bin/sh
2 # product name
3 product=chrome
4 # name
5 name=google-$product
6 # this package
7 specfile=$name.spec
8 # arch to check package. irrelevant for actual arch
9 arch=x86_64
10 # branch: stable, beta, unstable. default: stable
11 branch=${1:-stable}
12
13 case "${branch}" in
14         stable|beta|unstable)
15                 ;;
16         *)
17                 echo "$0: Unknown branch: $branch. Supported branches: stable, beta, unstable." >&2
18                 exit 1
19                 ;;
20 esac
21
22 sourceurl=http://dl.google.com/linux/$product/rpm/stable/$arch
23
24 set -e
25
26 echo -n "Fetching latest version... "
27 t=$(mktemp)
28
29 # poldek is buggy, see https://bugs.launchpad.net/poldek/+bug/1026762
30 #poldek -q --st=metadata --source "$sourceurl/" --update
31 #poldek -q --skip-installed --st=metadata --source "$sourceurl/" --cmd "ls google-chrome-$branch" > $t
32
33 repodata=primary-$branch-$(date +%Y%m%d).xml
34 test -e $repodata || {
35         wget -c $sourceurl/repodata/primary.xml.gz
36         gzip -dc primary.xml.gz > $repodata || test -s $repodata
37 }
38 perl -ne 'm{<name>google-'$product-$branch'</name>} and m{<version epoch="0" ver="([\d.]+)" rel="(\d+)"/>} and print "$1 $2"' > $t < $repodata
39
40 set -- $(sed -re "s,^.+-([^-]+)-([^-]+).$arch$,\1 \2," $t)
41
42 ver=$1
43 rev=$2
44
45 # extract flash version
46 rpm=$name-$branch-$ver-$rev.$arch.rpm
47 manifest=manifest-$ver.json
48 test -e $rpm || wget -c $sourceurl/$rpm
49 test -e $manifest || {
50         echo ./opt/google/chrome/PepperFlash/manifest.json > $t
51         rpm2cpio $rpm | cpio -i -E $t --to-stdout > manifest-$ver.json
52 }
53 flashv=$(awk -F'"' '/version/{print $4}' manifest-$ver.json)
54
55 rm -f $t
56 echo "$ver-$rev"
57
58 oldrev=$(awk '/^%define[        ]+svnrev[       ]+/{print $NF}' $specfile)
59 oldflash=$(awk '/^%define[      ]+flashv[       ]+/{print $NF}' $specfile)
60 if [ "$oldrev" = "$rev" -a "$oldflash" = "$flashv" ]; then
61         echo "Already up to date"
62         exit 0
63 fi
64
65 echo "Updating $specfile for $ver r$rev"
66 sed -i -e "
67         s/^\(%define[ \t]\+svnrev[ \t]\+\)[0-9]\+\$/\1$rev/
68         s/^\(%define[ \t]\+state[ \t]\+\)[a-z]\+\$/\1$branch/
69         s/^\(%define[ \t]\+flashv[ \t]\+\)[0-9.]\+\$/\1$flashv/
70         s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$ver/
71 " $specfile
72 ../builder -ncs -g $specfile || :
73 ../builder -ncs -5 $specfile
This page took 0.036121 seconds and 3 git commands to generate.