default:
    just --list

# devcontainer
build:
    cmake -B build -D_INCLUDE_SUBMODULES=ON -DTESTING_BUILD=ON
    cmake --build build

# devcontainer
run:
    just build
    ./build/bin/bazzite-updater

# devcontainer
test:
    just build
    ctest --test-dir build --output-on-failure

# devcontainer
update-submodules:
    git submodule update --init --recursive --remote

# TODO: use the Terra rpm builder instead of this custom solution

# host
build-rpm:
    #!/usr/bin/env bash
    set -eou pipefail
    mkdir -p ./output
    rm -f ./output/*.rpm

    podman run --rm -v "$PWD:/workspace:z" -w /workspace fedora:44 bash -lc '
        set -eou pipefail
        dnf install -y rpm-build
        dnf builddep -y bazzite-updater.spec

        export HOME=/root
        VERSION=$(cat version.txt)
        mkdir -p ~/rpmbuild/SOURCES
        tar --transform "s|^\\.|bazzite-updater-$VERSION|" -czf ~/rpmbuild/SOURCES/$VERSION.tar.gz .
        rpmbuild -bb bazzite-updater.spec
        cp -v ~/rpmbuild/RPMS/*/*.rpm /workspace/output/
    '

# host
build-rpm-cached:
    #!/usr/bin/env bash
    set -euo pipefail

    mkdir -p ./output
    rm -f ./output/*.rpm

    IMAGE_TAG="bazzite-updater:builddeps"

    podman build -t "${IMAGE_TAG}" -f - . <<'EOF'
    FROM fedora:44
    WORKDIR /tmp
    COPY bazzite-updater.spec /tmp/
    COPY version.txt /tmp/
    RUN dnf install -y rpm-build \
     && dnf builddep -y /tmp/bazzite-updater.spec \
     && dnf clean all
    EOF


    podman run --rm -v "$PWD:/workspace:z" -w /workspace "${IMAGE_TAG}" bash -lc '
    set -euo pipefail
    export HOME=/root
    VERSION=$(cat version.txt)
    mkdir -p ~/rpmbuild/SOURCES
    tar --transform "s|^\\.|bazzite-updater-$VERSION|" -czf ~/rpmbuild/SOURCES/$VERSION.tar.gz .
    rpmbuild -bb bazzite-updater.spec
    cp -v ~/rpmbuild/RPMS/*/*.rpm /workspace/output/
    '

# host
build-flatpak: output
    #!/usr/bin/env bash
    set -eou pipefail
    flatpak-builder --force-clean --repo=output/repo builddir .flatpak-manifest.json
    flatpak build-bundle output/repo output/bazzite-updater.flatpak io.github.rfrench3.bazzite-updater
    rm -r output/repo
    rm -r builddir

# devcontainer, copy src/resources to proper location
symlink-configs:
    #!/usr/bin/env bash
    set -eou pipefail
    sudo rm -r /etc/bazzite-updater
    sudo ln -s /workspaces/bazzite-updater/src/resources /etc/bazzite-updater

[private]
output:
    mkdir -p output
