#!/usr/bin/env bash

function _export_globals() {
    DBMATE_ARCH=$(dbmate_arch)
    export DBMATE_ARCH
}

function _helpers() {
    function dbmate_arch() {
        local host_arch
        if command -v arch >/dev/null 2>&1; then
            host_arch=$(arch)
        else
            host_arch=$(uname -m)
        fi
        local dbmate_arch_
        if [ "$host_arch" == "x86_64" ] ||[ "$host_arch" == "amd64" ]; then
            dbmate_arch_="amd64"
        elif [ "$host_arch" == "aarch64" ] || [ "$host_arch" == "arm64" ]; then
            dbmate_arch_="arm64"
        elif  [ "$host_arch" == "i386" ] ; then
            dbmate_arch_="386"
        else
            _exit_with_message "Unsupported architecture $host_arch"
        fi
        echo "$dbmate_arch_"
    }

}

function _main() {
    set -e
    function _exit_with_message() {
        echo "$1"
        exit "${2:-1}"
    }
    _helpers
    _export_globals
    docker compose "$@"
}

_main "$@"
