85 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set -u -e -o pipefail
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Setup environment
							 | 
						||
| 
								 | 
							
								readonly thisDir=$(cd $(dirname $0); pwd)
							 | 
						||
| 
								 | 
							
								source ${thisDir}/_travis-fold.sh
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 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
							 | 
						||
| 
								 | 
							
								#Let's use the following version of Chromium, and inform about availability of newer build from https://omahaproxy.appspot.com/all
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# CHROMIUM_VERSION <<< this variable is now set via env.sh
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								      LATEST_CHROMIUM_VERSION="${lineArray[7]}"
							 | 
						||
| 
								 | 
							
								    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}
							 | 
						||
| 
								 | 
							
								    STATUS=$(curl "https://storage.googleapis.com/chromium-browser-snapshots/${ARCHITECTURE}/${NEXT}/${DIST_FILE}" -s -w %{http_code} --create-dirs -o $FILE) || true
							 | 
						||
| 
								 | 
							
								    NEXT=$[$NEXT-1]
							 | 
						||
| 
								 | 
							
								  done
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  unzip $FILE -d $CHROMIUM_DIR
							 | 
						||
| 
								 | 
							
								  rm $FILE
							 | 
						||
| 
								 | 
							
								  echo $CHROMIUM_VERSION > $CHROMIUM_VERSION_FILE
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [[ "$CHROMIUM_VERSION" != "$LATEST_CHROMIUM_VERSION" ]]; then
							 | 
						||
| 
								 | 
							
								  echo "New version of Chromium available. Update install-chromium.sh with build number: ${LATEST_CHROMIUM_VERSION}"
							 | 
						||
| 
								 | 
							
								fi
							 |