#!/usr/bin/env bash
# Copyright 2020 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

set -e

usage() {
  cat <<EOUSAGE
Usage: $0 [--sudo]

Run standard CI (tests and linters) using local docker. If --sudo is set, run
docker with sudo.
EOUSAGE
}

maybe_sudo=
while [[ $# -gt 0 ]]; do
  case "$1" in
    "-h" | "--help" | "help")
      usage
      exit 0
      ;;
    "--sudo")
      maybe_sudo="sudo "
      shift
      ;;
    *)
      usage
      exit 1
  esac
done

# Find the repo root.
script_dir=$(dirname "$(readlink -f "$0")")
pkgsite_dir=$(readlink -f "${script_dir}/..")

# Run postgres.
pg_container=$(${maybe_sudo}docker run --rm -d -e LANG=C postgres:11.4)
trap "${maybe_sudo} docker stop ${pg_container}" EXIT

# Run all.bash. To avoid any port conflict, run in the postgres network.
cd "${pkgsite_dir}"
${maybe_sudo}docker run --rm -t \
  --network container:${pg_container} \
  -v $(pwd):"/workspace" -w "/workspace" \
  -e GO_DISCOVERY_TESTDB=true golang:1.14 ./all.bash ci
