2017-03-05 04:32:09 -05:00
#!/usr/bin/env bash
2015-11-19 17:37:55 -05:00
2017-03-05 04:32:09 -05:00
set -u -e -o pipefail
2015-11-19 17:37:55 -05:00
2016-04-28 20:50:03 -04:00
# Setup environment
2017-03-05 04:32:09 -05:00
readonly thisDir = $( cd $( dirname $0 ) ; pwd )
source ${ thisDir } /_travis-fold.sh
2016-04-28 20:50:03 -04:00
2015-11-19 17:37:55 -05:00
# This script basically follows the instructions to download an old version of Chromium: https://www.chromium.org/getting-involved/download-chromium
# 1) It retrieves the current stable version number from https://www.chromium.org/developers/calendar (via the https://omahaproxy.appspot.com/all file), e.g. 359700 for Chromium 48.
# 2) It checks the Travis cache for this specific version
# 3) If not available, it downloads and caches it, using the "decrement commit number" trick.
#Build version read from the OmahaProxy CSV Viewer at https://www.chromium.org/developers/calendar
2016-03-02 18:35:07 -05:00
#Let's use the following version of Chromium, and inform about availability of newer build from https://omahaproxy.appspot.com/all
2016-04-28 20:50:03 -04:00
#
# CHROMIUM_VERSION <<< this variable is now set via env.sh
2016-02-16 23:42:48 -05:00
PLATFORM = " $( uname -s) "
case " $PLATFORM " in
( Darwin)
ARCHITECTURE = Mac
DIST_FILE = chrome-mac.zip
; ;
( Linux)
ARCHITECTURE = Linux_x64
DIST_FILE = chrome-linux.zip
; ;
( *)
echo Unsupported platform $PLATFORM . Exiting ... >& 2
exit 3
; ;
esac
2015-11-19 17:37:55 -05:00
TMP = $( curl -s "https://omahaproxy.appspot.com/all" ) || true
oldIFS = " $IFS "
IFS = '
'
IFS = ${ IFS : 0 : 1 }
lines = ( $TMP )
IFS = ','
for line in " ${ lines [@] } "
do
lineArray = ( $line ) ;
if [ " ${ lineArray [0] } " = "linux" ] && [ " ${ lineArray [1] } " = "stable" ] ; then
2016-03-02 18:35:07 -05:00
LATEST_CHROMIUM_VERSION = " ${ lineArray [7] } "
2015-11-19 17:37:55 -05:00
fi
done
IFS = " $oldIFS "
CHROMIUM_DIR = $HOME /.chrome/chromium
CHROMIUM_BIN = $CHROMIUM_DIR /chrome-linux/chrome
CHROMIUM_VERSION_FILE = $CHROMIUM_DIR /VERSION
EXISTING_VERSION = ""
if [ [ -f $CHROMIUM_VERSION_FILE && -x $CHROMIUM_BIN ] ] ; then
EXISTING_VERSION = ` cat $CHROMIUM_VERSION_FILE `
echo Found cached Chromium version: ${ EXISTING_VERSION }
fi
if [ [ " $EXISTING_VERSION " != " $CHROMIUM_VERSION " ] ] ; then
echo Downloading Chromium version: ${ CHROMIUM_VERSION }
rm -fR $CHROMIUM_DIR
mkdir -p $CHROMIUM_DIR
NEXT = $CHROMIUM_VERSION
FILE = "chrome-linux.zip"
STATUS = 404
while [ [ $STATUS = = 404 && $NEXT -ge 0 ] ]
do
echo Fetch Chromium version: ${ NEXT }
2016-02-16 23:42:48 -05:00
STATUS = $( curl " https://storage.googleapis.com/chromium-browser-snapshots/ ${ ARCHITECTURE } / ${ NEXT } / ${ DIST_FILE } " -s -w %{ http_code} --create-dirs -o $FILE ) || true
2015-11-19 17:37:55 -05:00
NEXT = $[ $NEXT -1]
done
unzip $FILE -d $CHROMIUM_DIR
rm $FILE
echo $CHROMIUM_VERSION > $CHROMIUM_VERSION_FILE
fi
2016-03-02 18:35:07 -05:00
if [ [ " $CHROMIUM_VERSION " != " $LATEST_CHROMIUM_VERSION " ] ] ; then
2017-03-05 04:32:09 -05:00
echo " New version of Chromium available. Update install-chromium.sh with build number: ${ LATEST_CHROMIUM_VERSION } "
2016-03-02 18:35:07 -05:00
fi