# Claude Desktop.
#
# Anthropic ships macOS and Windows only. This is a community wrapper that
# downloads the official build, bundles Electron, and packages the result as a
# proper Fedora RPM -- so what lands on the system is still a package dnf owns
# and can remove, which is the part of the dnf/flatpak rule that matters most.
#
# The exception it needs is the build itself. There is no RPM or flatpak of
# Claude Desktop to install, so the choice is building one or not having it.
# Nothing is pinned: the default branch is built every time, and a failure is
# reported rather than worked around. sunhat pinned versions and every pin was
# a 404 within a release cycle.

description="Claude Desktop, built into a Fedora RPM"
repo="https://github.com/dewzor/claude-desktop-fedora.git"

# The upstream script installs its own build dependencies and prints the RPM it
# produced. It needs root because of that dependency install.
build() {
    sudo ./build-fedora.sh

    local rpm
    rpm="$(find build -name 'claude-desktop-*.rpm' -newermt '-1 hour' 2>/dev/null | head -1)"
    [[ -n "$rpm" ]] || rpm="$(find . -name 'claude-desktop-*.rpm' 2>/dev/null | head -1)"
    [[ -n "$rpm" ]] || { printf 'the build produced no RPM\n' >&2; return 1; }

    sudo dnf install -y "$rpm"
}
