# SPDX-FileCopyrightText: 2026 Contributors to brew-proxy <https://codeberg.org/HastD/brew-proxy>
#
# SPDX-License-Identifier: Apache-2.0 OR MIT

# convenience wrapper to check if the full build+install path works
quick-build:
    mkdir -p build
    meson setup --reconfigure build -Dprefix=/usr
    meson compile -C build
    DESTDIR=brew-proxy meson install -C build

generate-sysext: quick-build
    #!/usr/bin/env bash
    set -euxo pipefail

    BUILD_OUT="$(realpath build/brew-proxy)"
    SYSEXT_OUT="${PWD}/out"
    SYSEXT_NAME="brew-proxy"

    install -dm0755 "${BUILD_OUT}/usr/lib/extension-release.d" "${SYSEXT_OUT}"
    tee "${BUILD_OUT}/usr/lib/extension-release.d/extension-release.${SYSEXT_NAME}" <<EOF
    ID="_any"
    ARCHITECTURE="$(uname -m | tr '_' '-')"
    EOF

    filecontexts="/etc/selinux/targeted/contexts/files/file_contexts"
    if [ -e "${filecontexts}" ] ; then
        setfiles -r "${BUILD_OUT}" "${filecontexts}" "${BUILD_OUT}"
        chcon --user=system_u --recursive "${BUILD_OUT}"
    fi
    mkfs.erofs "${SYSEXT_OUT}/${SYSEXT_NAME}.raw" "${BUILD_OUT}"

install-sysext: generate-sysext
    #!/usr/bin/run0 bash
    set -euxo pipefail
    umask 0022
    mkdir -p /var/lib/extensions
    cp -f "${PWD}/out/brew-proxy.raw" /var/lib/extensions/brew-proxy.raw
    systemd-sysext refresh

install-semodule: quick-build
    #!/usr/bin/run0 bash
    semodule -v -i build/brew-proxy/usr/share/selinux/packages/targeted/brew-proxy.pp.bz2
