#!/bin/sh
set -eu

# keep container around if $DEBUG is set
[ -n "${DEBUG:-}" ] || OPTS="--rm"

if type podman >/dev/null 2>&1; then
    RUNC=podman
else
    RUNC="sudo docker"
fi

$RUNC run --interactive ${OPTS:-} --volume `pwd`:/source:ro docker.io/fedora:${RELEASE:-latest} /bin/sh << EOF
set -eu
dnf -y update

# install build dependencies
dnf -y install meson git gcc glib2-devel gtk-doc libgudev1-devel libtool libudev-devel make python3-gobject-base usbutils vala xz systemd-udev valgrind gcovr

# run build as user
useradd guest
su -s /bin/sh - guest << EOG
set -eux
cd /source
meson setup /tmp/dbg --buildtype debug --prefix /usr -Dgtk_doc=true -Db_coverage=true
cd /tmp/dbg
meson dist --no-test
meson test -v --num-processes=1
ninja coverage-text
meson test -v --num-processes=1 --setup valgrind --no-suite fails-valgrind
cat meson-logs/coverage.txt
EOG

EOF
