]>
Commit | Line | Data |
---|---|---|
fa196e82 | 1 | #!/bin/sh |
22605b2f | 2 | |
f1c7d842 ER |
3 | die() { |
4 | echo >&2 "$0: $*" | |
5 | exit 1 | |
6 | } | |
7 | ||
22605b2f AM |
8 | if [ "$1" = "-k" ]; then |
9 | cache=yes | |
10 | shift | |
11 | else | |
12 | cache=no | |
13 | fi | |
14 | ||
9af080da ER |
15 | # product name |
16 | product=chrome | |
17 | # name | |
18 | name=google-$product | |
19 | # this package | |
20 | specfile=$name.spec | |
e2c2e846 | 21 | # arch to check package. irrelevant for actual arch |
22df2dd7 | 22 | arch=x86_64 |
e2c2e846 | 23 | # branch: stable, beta, unstable. default: stable |
c8c83709 | 24 | branch=${1:-stable} |
81efd66c AM |
25 | |
26 | case "${branch}" in | |
27 | stable|beta|unstable) | |
28 | ;; | |
29 | *) | |
f1c7d842 | 30 | die "Unknown branch: $branch. Supported branches: stable, beta, unstable." |
81efd66c AM |
31 | ;; |
32 | esac | |
33 | ||
9af080da | 34 | sourceurl=http://dl.google.com/linux/$product/rpm/stable/$arch |
48f5d819 | 35 | |
fa196e82 ER |
36 | set -e |
37 | ||
38 | echo -n "Fetching latest version... " | |
39 | t=$(mktemp) | |
eb239aaf | 40 | |
b419095f ER |
41 | # poldek is buggy, see https://bugs.launchpad.net/poldek/+bug/1026762 |
42 | #poldek -q --st=metadata --source "$sourceurl/" --update | |
43 | #poldek -q --skip-installed --st=metadata --source "$sourceurl/" --cmd "ls google-chrome-$branch" > $t | |
44 | ||
fa227df9 | 45 | repodata=primary-$branch-$(date +%Y%m%d).xml |
22605b2f | 46 | [ "$cache" = "yes" ] || rm -f "$repodata" |
fa227df9 | 47 | test -e $repodata || { |
440012b5 | 48 | wget $sourceurl/repodata/primary.xml.gz -O $repodata.gz |
a551b7c2 | 49 | gzip -dc $repodata.gz > $repodata || test -s $repodata |
fa227df9 ER |
50 | } |
51 | perl -ne 'm{<name>google-'$product-$branch'</name>} and m{<version epoch="0" ver="([\d.]+)" rel="(\d+)"/>} and print "$1 $2"' > $t < $repodata | |
eb239aaf ER |
52 | |
53 | set -- $(sed -re "s,^.+-([^-]+)-([^-]+).$arch$,\1 \2," $t) | |
54 | ||
eb239aaf | 55 | ver=$1 |
b6c0552a | 56 | rel=$2 |
eb239aaf | 57 | |
3e9019a0 | 58 | if [ -z "$ver" -o -z "$rel" ]; then |
f1c7d842 | 59 | die "Error: xml file is missing data for ${branch} type" |
3e9019a0 AM |
60 | fi |
61 | ||
2ae4947c | 62 | # check google-chrome ver only |
2ae4947c | 63 | oldver=$(awk '/^Version:[ \t]+/{print $NF; exit}' $specfile) |
b6c0552a ER |
64 | oldrel=$(awk '/^Release:[ \t]+/{print $NF; exit}' $specfile) |
65 | if [ "$oldrel" = "$rel" -a "$oldver" = "$ver" ]; then | |
66 | echo "Already up to date (google-chrome/$ver-$rel)" | |
2ae4947c AM |
67 | exit 0 |
68 | fi | |
69 | ||
58e6ccff AM |
70 | # check google-chrome |
71 | if [ "$oldrel" = "$rel" -a "$oldver" = "$ver" ]; then | |
72 | echo "Already up to date (google-chrome/$ver-$rel)" | |
57c5ccb3 | 73 | exit 0 |
fa196e82 | 74 | fi |
57c5ccb3 | 75 | |
58e6ccff | 76 | echo "Updating $specfile for google-chrome/$oldver-$oldrel -> $ver-$rel" |
57c5ccb3 | 77 | sed -i -e " |
57c5ccb3 | 78 | s/^\(%define[ \t]\+state[ \t]\+\)[a-z]\+\$/\1$branch/ |
57c5ccb3 | 79 | s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$ver/ |
b6c0552a | 80 | s/^\(Release:[ \t]\+\)[.0-9]\+\$/\1$rel/ |
57c5ccb3 | 81 | " $specfile |
90f743de | 82 | ../builder -ncs -nd -n5 -g $specfile || : |
86c9cd57 | 83 | ../builder -ncs -nd -5 $specfile |