FROM archlinux:latest

RUN pacman -Syu --noconfirm \
 && pacman -S --needed --noconfirm \
      base-devel cmake ninja clang lld nodejs tree-sitter \
      jkqtplotter cmark-gfm git wayland-protocols ffmpeg mpv \
      qt6-base qt6-declarative qt6-shadertools qt6-5compat \
      qt6-canvaspainter qt6-wayland qt5-wayland \
      libqalculate pipewire aubio cava lm_sensors glib2 \
 && pacman -Scc --noconfirm

RUN pacman -Syu --noconfirm \
 && pacman -S --needed --noconfirm \
      sudo meson autoconf-archive python-tqdm \
 && useradd -m builder \
 && printf '%s\n' 'builder ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/builder \
 && chmod 0440 /etc/sudoers.d/builder \
 && for i in 1 2 3 4 5; do \
      rm -rf /tmp/libcava; \
      if git clone --depth 1 https://aur.archlinux.org/libcava.git /tmp/libcava; then break; fi; \
      sleep 5; \
    done \
 && test -d /tmp/libcava/.git \
 && chown -R builder:builder /tmp/libcava \
 && su builder -c "cd /tmp/libcava && makepkg -si --noconfirm" \
 && rm -rf /tmp/libcava /etc/sudoers.d/builder \
 && userdel -r builder \
 && pacman -Scc --noconfirm
