FROM node:25-bookworm

LABEL org.opencontainers.image.authors="matthew.pomes@pm.me"

WORKDIR /root

# common packages
RUN apt-get update && \
    apt-get install --no-install-recommends -y \
    ca-certificates curl file \
    build-essential \
    autoconf automake autotools-dev libtool xutils-dev && \
    rm -rf /var/lib/apt/lists/*

# ENV SSL_VERSION=1.0.2u

# RUN curl https://www.openssl.org/source/openssl-$SSL_VERSION.tar.gz -O && \
#     tar -xzf openssl-$SSL_VERSION.tar.gz && \
#     cd openssl-$SSL_VERSION && ./config && make depend && make install && \
#     cd .. && rm -rf openssl-$SSL_VERSION*

# ENV OPENSSL_LIB_DIR=/usr/local/ssl/lib \
#     OPENSSL_INCLUDE_DIR=/usr/local/ssl/include \
#     OPENSSL_STATIC=1

# install toolchain
ARG TOOLCHAIN
RUN curl https://sh.rustup.rs -sSf | \
    sh -s -- --default-toolchain $TOOLCHAIN -y
ENV PATH=/root/.cargo/bin:$PATH

ARG EXTRA=""
RUN ["/bin/bash", "-c", "declare -a ARR=($EXTRA); for name in $ARR; do rustup install $name; done"]

ARG TARGETS=""
RUN ["/bin/bash", "-c", "declare -a ARR=($TARGETS); for name in $ARR; do rustup target add $name; done"]

ARG TOOLS=""
RUN ["/bin/bash", "-c", "declare -a ARR=($TOOLS); for name in $ARR; do cargo install --locked $name; done"]
