]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | ||
3 | set -e | |
4 | ||
5 | die() { | |
6 | echo >&2 "$0: $*" | |
7 | exit 1 | |
8 | } | |
9 | ||
10 | if [ "$1" = "-k" ]; then | |
11 | cache=yes | |
12 | shift | |
13 | else | |
14 | cache=no | |
15 | fi | |
16 | ||
17 | # product name | |
18 | product=chrome | |
19 | # name | |
20 | name=google-$product | |
21 | # this package | |
22 | specfile=$name.spec | |
23 | # arch to check package. irrelevant for actual arch | |
24 | arch=x86_64 | |
25 | # branch: stable, beta, unstable. default: stable | |
26 | branch=${1:-stable} | |
27 | ||
28 | case "${branch}" in | |
29 | stable|beta|unstable) | |
30 | ;; | |
31 | *) | |
32 | die "Unknown branch: $branch. Supported branches: stable, beta, unstable." | |
33 | ;; | |
34 | esac | |
35 | ||
36 | sourceurl=https://dl.google.com/linux/$product/rpm/stable/$arch | |
37 | ||
38 | fetch_version() { | |
39 | echo -n "Fetching latest version for $branch... " | |
40 | ||
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 | ||
45 | set -- $( | |
46 | python3 <<-EOF | |
47 | import repomd | |
48 | repo = repomd.load('$sourceurl') | |
49 | package = repo.find('google-$product-$branch') | |
50 | print("{0} {1}".format(package.version, package.release)) | |
51 | EOF | |
52 | ) | |
53 | ||
54 | ver=$1 | |
55 | rel=$2 | |
56 | } | |
57 | ||
58 | if [ -n "$2" ]; then | |
59 | ver=$2 | |
60 | rel=1 | |
61 | else | |
62 | fetch_version | |
63 | fi | |
64 | ||
65 | if [ -z "$ver" -o -z "$rel" ]; then | |
66 | die "Error: xml file is missing data for ${branch} type" | |
67 | fi | |
68 | ||
69 | # check google-chrome ver only | |
70 | oldver=$(awk '/^Version:[ \t]+/{print $NF; exit}' $specfile) | |
71 | oldrel=$(awk '/^Release:[ \t]+/{print $NF; exit}' $specfile) | |
72 | if [ "$oldrel" = "$rel" -a "$oldver" = "$ver" ]; then | |
73 | echo "Already up to date (google-chrome/$ver-$rel)" | |
74 | exit 0 | |
75 | fi | |
76 | ||
77 | # check google-chrome | |
78 | if [ "$oldrel" = "$rel" -a "$oldver" = "$ver" ]; then | |
79 | echo "Already up to date (google-chrome/$ver-$rel)" | |
80 | exit 0 | |
81 | fi | |
82 | ||
83 | echo "Updating $specfile for google-chrome/$oldver-$oldrel -> $ver-$rel" | |
84 | sed -i -e " | |
85 | s/^\(%define[ \t]\+state[ \t]\+\)[a-z]\+\$/\1$branch/ | |
86 | s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$ver/ | |
87 | s/^\(Release:[ \t]\+\)[.0-9]\+\$/\1$rel/ | |
88 | " $specfile | |
89 | ../builder -ncs -nd -n5 -g $specfile || : | |
90 | ../builder -ncs -nd -5 $specfile |