FROM archlinux:latest

RUN pacman -Syyu --noconfirm

# Build toolchain
RUN pacman -S --noconfirm \
    base-devel \
    cmake \
    ninja \
    clang \
    lld \
    nodejs \
    tree-sitter \
    jkqtplotter \
    cmark-gfm \
    git

# Qt6
RUN pacman -S --noconfirm \
    qt6-base \
    qt6-declarative \
    qt6-shadertools \
    qt6-5compat \
    qt6-canvaspainter

# Project-specific dependencies
RUN pacman -S --noconfirm \
    libqalculate \
    pipewire \
    aubio \
    cava \
    lm_sensors \
    glib2

# AUR: libcava (provides development headers for cava)
RUN pacman -Syu --noconfirm && \
    pacman -S --needed --noconfirm \
        sudo \
        meson \
        autoconf-archive \
        python-tqdm && \
    useradd -m builder && \
    echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

RUN for i in 1 2 3 4 5; do \
        rm -rf /tmp/libcava && \
        git clone --depth 1 https://aur.archlinux.org/libcava.git /tmp/libcava && \
        break || sleep 5; \
    done && \
    test -d /tmp/libcava/.git && \
    chown -R builder /tmp/libcava

RUN su builder -c "cd /tmp/libcava && makepkg -si --noconfirm" && \
    rm -rf /tmp/libcava && \
    userdel -r builder && \
    sed -i '/^builder/d' /etc/sudoers
