|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -e -x |
| 4 | + |
| 5 | +# This script basically follows the instructions to download an old version of Chromium: https://www.chromium.org/getting-involved/download-chromium |
| 6 | +# 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. |
| 7 | +# 2) It checks the Travis cache for this specific version |
| 8 | +# 3) If not available, it downloads and caches it, using the "decrement commit number" trick. |
| 9 | + |
| 10 | +#Build version read from the OmahaProxy CSV Viewer at https://www.chromium.org/developers/calendar |
| 11 | +#Let's use Chromium 47 as the default (352221 build number), and try to grab the latest stable from https://omahaproxy.appspot.com/all |
| 12 | +CHROMIUM_VERSION=352221 |
| 13 | +TMP=$(curl -s "https://omahaproxy.appspot.com/all") || true |
| 14 | +oldIFS="$IFS" |
| 15 | +IFS=' |
| 16 | +' |
| 17 | +IFS=${IFS:0:1} |
| 18 | +lines=( $TMP ) |
| 19 | +IFS=',' |
| 20 | +for line in "${lines[@]}" |
| 21 | + do |
| 22 | + lineArray=($line); |
| 23 | + if [ "${lineArray[0]}" = "linux" ] && [ "${lineArray[1]}" = "stable" ] ; then |
| 24 | + CHROMIUM_VERSION="${lineArray[7]}" |
| 25 | + fi |
| 26 | +done |
| 27 | +IFS="$oldIFS" |
| 28 | + |
| 29 | +CHROMIUM_DIR=$HOME/.chrome/chromium |
| 30 | +CHROMIUM_BIN=$CHROMIUM_DIR/chrome-linux/chrome |
| 31 | +CHROMIUM_VERSION_FILE=$CHROMIUM_DIR/VERSION |
| 32 | + |
| 33 | +EXISTING_VERSION="" |
| 34 | +if [[ -f $CHROMIUM_VERSION_FILE && -x $CHROMIUM_BIN ]]; then |
| 35 | + EXISTING_VERSION=`cat $CHROMIUM_VERSION_FILE` |
| 36 | + echo Found cached Chromium version: ${EXISTING_VERSION} |
| 37 | +fi |
| 38 | + |
| 39 | +if [[ "$EXISTING_VERSION" != "$CHROMIUM_VERSION" ]]; then |
| 40 | + echo Downloading Chromium version: ${CHROMIUM_VERSION} |
| 41 | + rm -fR $CHROMIUM_DIR |
| 42 | + mkdir -p $CHROMIUM_DIR |
| 43 | + |
| 44 | + NEXT=$CHROMIUM_VERSION |
| 45 | + FILE="chrome-linux.zip" |
| 46 | + STATUS=404 |
| 47 | + while [[ $STATUS == 404 && $NEXT -ge 0 ]] |
| 48 | + do |
| 49 | + echo Fetch Chromium version: ${NEXT} |
| 50 | + STATUS=$(curl "https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/${NEXT}/chrome-linux.zip" -s -w %{http_code} --create-dirs -o $FILE) || true |
| 51 | + NEXT=$[$NEXT-1] |
| 52 | + done |
| 53 | + |
| 54 | + unzip $FILE -d $CHROMIUM_DIR |
| 55 | + rm $FILE |
| 56 | + echo $CHROMIUM_VERSION > $CHROMIUM_VERSION_FILE |
| 57 | +fi |
| 58 | + |
| 59 | + |
0 commit comments