#!/bin/bash
#
# Setup the files and checkouts on a cluster telemetry machine.
#

set -e

# Install required packages.
sudo apt-get update;
sudo apt-get -y install python-django libgif-dev lua5.2 && \
    sudo easy_install -U pip && sudo pip install setuptools \
    --no-use-wheel --upgrade && sudo pip install -U crcmod

# Install Python 2.7.11. See skbug.com/5562 for context.
sudo apt-get -y install autotools-dev blt-dev bzip2 dpkg-dev g++-multilib \
    gcc-multilib libbluetooth-dev libbz2-dev libexpat1-dev libffi-dev libffi6 \
    libffi6-dbg libgdbm-dev libgpm2 libncursesw5-dev libreadline-dev \
    libsqlite3-dev libssl-dev libtinfo-dev mime-support net-tools netbase \
    python-crypto python-mox3 python-pil python-ply quilt tk-dev zlib1g-dev \
    mesa-utils android-tools-adb
wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
tar xfz Python-2.7.11.tgz
cd Python-2.7.11/
./configure --prefix /usr/local/lib/python2.7.11 --enable-ipv6
make
sudo make install

# Checkout depot_tools
if [ ! -d "/b/depot_tools" ]; then
  cd /b/
  git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  echo 'export PATH=/b/depot_tools:$PATH' >> ~/.bashrc
fi
PATH=$PATH:/b/depot_tools

# Checkout Chromium repository.
mkdir -p /b/storage/chromium;
cd /b/storage/chromium;
/b/depot_tools/fetch chromium;
cd src;
git checkout master;
/b/depot_tools/gclient sync

# Checkout Skia's buildbot and trunk, and PDFium repositories.
mkdir /b/skia-repo/;
cd /b/skia-repo/;
echo """
solutions = [
  { 'name'        : 'buildbot',
    'url'         : 'https://skia.googlesource.com/buildbot.git',
    'deps_file'   : 'DEPS',
    'managed'     : True,
    'custom_deps' : {
    },
    'safesync_url': '',
  },
  { 'name'        : 'trunk',
    'url'         : 'https://skia.googlesource.com/skia.git',
    'deps_file'   : 'DEPS',
    'managed'     : True,
    'custom_deps' : {
    },
    'safesync_url': '',
  },
  { 'name'        : 'pdfium',
    'url'         : 'https://pdfium.googlesource.com/pdfium.git',
    'deps_file'   : 'DEPS',
    'managed'     : False,
    'custom_deps' : {
    },
    'safesync_url': '',
  },
]
""" > .gclient;
/b/depot_tools/gclient sync;
# Checkout master in the repositories so that we can run "git pull" later.
cd buildbot;
git checkout master;
cd ../trunk;
git checkout master;
cd ../pdfium;
git checkout master;
# Create glog dir.
mkdir /b/storage/glog

echo
echo "The setup script has completed!"
echo
