#!/bin/bash
# created by Tobias Powalowski <tpowa@archlinux.org>
# change to english locale!
export LANG="en_US"
_BASENAME="$(basename "${0}")"
_RUNNING_ARCH="$(uname -m)"
_PACMAN_MIRROR="/etc/pacman.d/mirrorlist"
_PACMAN_CONF="/etc/pacman.conf"

### check for root
_root_check() {
    if ! [[ ${UID} -eq 0 ]]; then
        echo "ERROR: Please run as root user!"
        exit 1
    fi
}

### check for x86_64
_x86_64_check() {
    if ! [[ "${_RUNNING_ARCH}" == "x86_64" ]]; then
        echo "ERROR: Pleae run on x86_64 hardware."
        exit 1
    fi
}

### check for aarch64
_aarch64_check() {
    if ! [[ "${_RUNNING_ARCH}" == "aarch64" ]]; then
        echo "ERROR: Please run on aarch64 hardware."
        exit 1
    fi
}

### check for tpowa's build server
_buildserver_check() {
    if [[ ! "$(cat /etc/hostname)" == "T-POWA-LX" ]]; then
        echo "This script should only be run on tpowa's build server. Aborting..."
        exit 1
    fi
}

# generate locales
_generate_locales() {
    echo "Generate locales in container ..."
    echo 'en_US ISO-8859-1' >> "${1}/etc/locale.gen"
    echo 'en_US.UTF-8 UTF-8' >> "${1}/etc/locale.gen"
    systemd-nspawn -q -D "${1}" locale-gen >/dev/null 2>&1
}

_generate_keyring() {
    # generate pacman keyring
    echo "Generate pacman keyring in container ..."
    systemd-nspawn -q -D "${1}" pacman-key --init >/dev/null 2>&1
    systemd-nspawn -q -D "${1}" pacman-key --populate "${_KEYRING}" >/dev/null 2>&1
}

_x86_64_pacman_use_default() {
    # use pacman.conf with disabled [testing] repository
    cp "${_PACMAN_CONF}" "${_PACMAN_CONF}".old
    cp "${_PACMAN_CONF}".archboot "${_PACMAN_CONF}"
    # use mirrorlist with enabled rackspace mirror
    cp "${_PACMAN_MIRROR}" "${_PACMAN_MIRROR}".old
    cp "${_PACMAN_MIRROR}".archboot "${_PACMAN_MIRROR}"
}

_x86_64_pacman_restore() {
    # restore pacman.conf and mirrorlist
    cp "${_PACMAN_MIRROR}".old "${_PACMAN_MIRROR}"
    cp "${_PACMAN_CONF}".old "${_PACMAN_CONF}"
}
