#!/usr/bin/env bash

#    Copyright 2021 Couchbase, Inc.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

PROJECT_ROOT="$( cd "$(dirname "$0"/../..)" >/dev/null 2>&1 ; pwd -P )"

echo "HOSTNAME=${HOSTNAME}"
echo "NODE_NAME=${NODE_NAME}"
echo "CONTAINER_TAG=${CONTAINER_TAG}"
echo "JENKINS_SLAVE_LABELS=${JENKINS_SLAVE_LABELS}"
echo "NODE_LABELS=${NODE_LABELS}"

set -ex

# | CODENAME | RELNAME    |
# +----------+------------+
# | focal    | ubuntu2004 |
# | bionic   | ubuntu1804 |
# | xenial   | ubuntu1604 |
# | buster   | debian10   |
# | stretch  | debian9    |
CODENAME=${CODENAME:-focal}
case "${CODENAME}" in
  focal)
    RELNAME=ubuntu2004
    ;;
  bionic)
    RELNAME=ubuntu1804
    ;;
  xenial)
    RELNAME=ubuntu1604
    ;;
  buster)
    RELNAME=debian10
    ;;
  stretch)
    RELNAME=debian9
    ;;
esac

COW_BASE="/var/cache/pbuilder/${CODENAME}-amd64.cow"

if [ -f "${COW_BASE}/etc/os-release" ]
then
  sudo cowbuilder --update --basepath "${COW_BASE}"
else
  sudo rm -rf "${COW_BASE}"
  sudo apt-get install cowbuilder
  case "${RELNAME}" in
    ubuntu*)
      sudo cowbuilder --create \
        --distribution "${CODENAME}" \
        --basepath "${COW_BASE}" \
        --components 'main universe' \
        --mirror http://ftp.ubuntu.com/ubuntu  \
        --debootstrapopts --arch=amd64 \
        --debootstrapopts --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg
      ;;
    debian*)
      sudo cowbuilder --create \
        --distribution "${CODENAME}" \
        --basepath "${COW_BASE}" \
        --components main \
        --mirror http://ftp.debian.org/debian  \
        --debootstrapopts --arch=amd64
      ;;
  esac
fi
