#!/usr/bin/env bash set -v -e -x # Assert that we're not running as root. if [[ $(id -u) -eq 0 ]]; then # This exec is still needed until aarch64 images are updated (Bug 1488325). # Remove when images are updated. Until then, assert that things are good. [[ $(uname -m) == aarch64 ]] exec su worker -c "$0 $*" fi export PATH="${PATH}:/home/worker/.cargo/bin/:/usr/lib/go-1.6/bin" # Usage: hg_clone repo dir [revision=@] hg_clone() { repo=$1 dir=$2 rev=${3:-@} if [ -d "$dir" ]; then hg pull -R "$dir" -ur "$rev" "$repo" && return rm -rf "$dir" fi for i in 0 2 5; do sleep $i hg clone -r "$rev" "$repo" "$dir" && return rm -rf "$dir" done exit 1 } fetch_dist() { if [ "$TASKCLUSTER_ROOT_URL" = "https://taskcluster.net" ] || [ -z "$TASKCLUSTER_ROOT_URL" ]; then url=https://queue.taskcluster.net/v1/task/$TC_PARENT_TASK_ID/artifacts/public/dist.tar.bz2 else url=$TASKCLUSTER_ROOT_URL/api/queue/v1/task/$TC_PARENT_TASK_ID/artifacts/public/dist.tar.bz2 fi if [ ! -d "dist" ]; then for i in 0 2 5; do sleep $i curl --retry 3 -Lo dist.tar.bz2 $url && tar xvjf dist.tar.bz2 && return rm -fr dist.tar.bz2 dist done exit 1 fi }