]>
Commit | Line | Data |
---|---|---|
4bc08302 | 1 | #!/bin/sh |
04217bf5 ER |
2 | # Usage: |
3 | # ./update-source.sh | |
4 | # env variables controlling behaviour | |
04217bf5 ER |
5 | # build_package=[0|1] - build package when new version is fetched |
6 | # publish_packages=[0|1] - publish built packages in ~/public_html/$dist/$arch | |
7 | # quiet=[0|1] - discard stdout of process | |
8 | ||
68aa31d5 ER |
9 | # work in package dir |
10 | dir=$(dirname "$0") | |
11 | cd "$dir" | |
12 | ||
13 | # abort on errors | |
14 | set -e | |
15 | ||
04217bf5 ER |
16 | # setup $quiet, you may override with env it |
17 | quiet=${quiet:-$(tty -s && echo 0 || echo 1)} | |
18 | if [ "$quiet" = "1" ]; then | |
19 | # we do not want output when running on cron | |
20 | exec 1>/dev/null | |
21 | fi | |
22 | ||
4bc08302 ER |
23 | baseurl=http://ppa.launchpad.net/chromium-daily/ppa/ubuntu/pool/main/c/chromium-browser |
24 | ||
25 | if [ "$1" ]; then | |
26 | url=$1 | |
27 | else | |
28 | if [ ! -x /usr/bin/lynx ]; then | |
29 | echo >&2 "${1##*/}: need lynx to parse sources" | |
30 | exit 1 | |
31 | fi | |
32 | echo "Fetching latest tarball name..." | |
33 | url=$(lynx -dump $baseurl/ | awk '/orig\.tar\.gz/{tarball=$NF} END{print tarball}') | |
34 | fi | |
35 | ||
36 | tarball=${url##*/} | |
37 | echo "tarball: $tarball..." | |
38 | ||
39 | if [ ! -f $tarball ]; then | |
40 | if [ ! -x /usr/bin/wget ]; then | |
41 | echo >&2 "${1##*/}: need wget to fetch tarball" | |
42 | exit 1 | |
43 | fi | |
d50bb3dc | 44 | wget -q -c $url |
4bc08302 ER |
45 | upload=$tarball |
46 | fi | |
47 | ||
4bc08302 ER |
48 | pkg=chromium-browser |
49 | specfile=$pkg.spec | |
50 | ||
51 | svndate=$(awk '/^%define[ ]+svndate[ ]+/{print $NF}' $specfile) | |
52 | svnver=$(awk '/^%define[ ]+svnver[ ]+/{print $NF}' $specfile) | |
53 | version=$(awk '/^Version:[ ]+/{print $NF}' $specfile) | |
65b68643 | 54 | rel=$(awk '/^%define[ ]+rel[ ]+/{print $NF}' $specfile) |
4bc08302 ER |
55 | |
56 | newtar=${pkg}_${version}~svn${svndate}r${svnver}.orig.tar.gz | |
57 | if [ "$newtar" != "$tarball" ]; then | |
58 | echo "Updating $specfile $to $newtar" | |
59 | version=${tarball#${pkg}_} version=${version%~*} | |
60 | svndate=${tarball#*svn} svndate=${svndate%%r*} | |
61 | svnver=${tarball#${pkg}_${version}~svn${svndate}r} svnver=${svnver%%.*} | |
62 | ||
63 | sed -i -e " | |
64 | s/^\(%define[ \t]\+svnver[ \t]\+\)[0-9]\+\$/\1$svnver/ | |
65 | s/^\(%define[ \t]\+svndate[ \t]\+\)[0-9]\+\$/\1$svndate/ | |
68aa31d5 | 66 | s/^\(Version:[ \t]\+\)[.0-9]\+\$/\1$version/ |
4bc08302 ER |
67 | " $specfile |
68 | ../builder -ncs -5 $specfile | |
68aa31d5 | 69 | |
9a2247a5 | 70 | if [ "$build_package" != 0 ]; then |
65b68643 ER |
71 | dist=$(rpm -E %{pld_release}) |
72 | arch=$(rpm -E %{_host_cpu}) | |
73 | outdir=$(readlink -f $dir)/build-$dist-$arch | |
b0f32683 | 74 | logfile=$outdir/$pkg.log |
65b68643 ER |
75 | rpmdir=$outdir/RPMS |
76 | install -d $rpmdir | |
77 | ||
b0f32683 ER |
78 | # setup custom logfile via $HOME_ETC hack |
79 | # TODO: just add --logfile support for builder | |
80 | cat > $outdir/.builderrc <<-EOF | |
81 | if [ -n "$HOME_ETC" ]; then | |
82 | . "$HOME_ETC/.builderrc" | |
83 | else | |
84 | . ~/.builderrc | |
85 | fi | |
86 | LOGFILE='$logfile' | |
87 | EOF | |
88 | ||
89 | > $logfile | |
90 | HOME_ETC=$outdir \ | |
91 | ../builder -bb --clean \ | |
23db2088 | 92 | --define "_unpackaged_files_terminate_build 1" \ |
b0f32683 ER |
93 | --define '_enable_debug_packages 0' \ |
94 | --define "_builddir $outdir" \ | |
95 | --define "_rpmdir $rpmdir" \ | |
96 | $specfile || { | |
97 | echo "Package build failed" | |
09ab05b5 | 98 | tail -n 1000 $logfile >&2 |
b0f32683 ER |
99 | exit 1 |
100 | } | |
65b68643 ER |
101 | |
102 | rpmdest=~/public_html/$dist/$arch/ | |
103 | if [ "$publish_packages" ] && [ "$(ls $rpmdir/*.rpm 2>/dev/null)" ]; then | |
104 | install -d $rpmdest | |
105 | umask 022 | |
106 | chmod 644 $rpmdir/*.rpm | |
107 | mv -v $rpmdir/*.rpm $rpmdest/ | |
108 | poldek --cachedir=$HOME/tmp --mkidx -s $rpmdest/ --mt=pndir | |
109 | fi | |
68aa31d5 | 110 | fi |
4bc08302 ER |
111 | else |
112 | echo "$specfile already up to $newtar" | |
113 | fi |