FROM archlinux:latest

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

# 初始化密钥和软件源
RUN pacman-key --init && \
    pacman-key --populate archlinux && \
    sed -i 's/^#ParallelDownloads/ParallelDownloads/' /etc/pacman.conf && \
    printf "\n[archlinuxcn]\nServer = https://mirrors.ustc.edu.cn/archlinuxcn/\$arch\n" >> /etc/pacman.conf && \
    pacman -Syy --noconfirm

# 安装基础工具、Buildx 支持和开发环境
RUN pacman -Syu --noconfirm && \
    pacman -S --noconfirm --disable-download-timeout archlinuxcn-keyring && \
    pacman -S --noconfirm --needed \
        base-devel \
        ca-certificates \
        clang \
        lld \
        libc++ \
        libc++abi \
        cmake \
        ninja \
        curl \
        git \
        nodejs \
        npm \
        python \
        python-pyyaml \
        python-pip \
        paru \
        sudo \
        vim \
        supervisor \
        qemu-user-static \
        qemu-user-static-binfmt \
        fakeroot \
        docker \
        docker-buildx \
    && pacman -Scc --noconfirm

# AUR 用户（paru 需非 root 运行）
RUN useradd -m aur && \
    echo "aur ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/aur && \
    chmod 0440 /etc/sudoers.d/aur

# 安装额外的 AUR 工具
USER aur
WORKDIR /home/aur
RUN paru -S --noconfirm --needed --noprogressbar conan-bin llvm-mingw-w64-toolchain-ucrt-bin && \
    paru -Scc --noconfirm && \
    rm -rf ~/.cache/paru

# 切换回 root
USER root
WORKDIR /root

# 交叉工具链可用：确保 windres 在 PATH，避免 CMake 查找失败
ENV PATH="/opt/llvm-mingw/llvm-mingw-ucrt/bin:${PATH}"
ENV RC="/opt/llvm-mingw/llvm-mingw-ucrt/bin/x86_64-w64-mingw32-windres"

# 验证 qemu 和 docker 安装
RUN qemu-aarch64-static --version && \
    qemu-x86_64-static --version && \
    docker --version

# 创建必要目录
RUN mkdir -p /data /etc/supervisor/conf.d /var/log/supervisor

# 设置工作目录
WORKDIR /data

# 使用自定义入口点
ENTRYPOINT ["/data/entrypoint.sh"]
