FROM octoprint/octoprint AS octoprint
RUN apt update -q && \
    apt install -yq \
        cpulimit \
        sudo \
        curl wget \
        unzip \
        nano \
    && \
    apt-get autoremove -y && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log

FROM octoprint AS mjpg-streamer-builder
WORKDIR /build
RUN apt update -q && \
    apt install -yq unzip subversion
RUN curl -s -L https://github.com/pranjalv123/mjpg-streamer-yu12/archive/refs/heads/master.zip --output mjpeg-streamer-yu12.zip && \
    unzip -q mjpeg-streamer-yu12.zip
RUN cd mjpg-streamer-yu12-master/mjpg-streamer && \
    make && \
    ls -lah

FROM octoprint AS octoprint-mjpg-streamer
COPY --from=mjpg-streamer-builder /build/mjpg-streamer-yu12-master/mjpg-streamer/mjpg_streamer /usr/local/bin/mjpg_streamer
COPY --from=mjpg-streamer-builder /build/mjpg-streamer-yu12-master/mjpg-streamer/*.so /usr/local/lib/mjpg-streamer/

FROM octoprint AS octoklipper
RUN git clone https://github.com/Klipper3d/klipper.git klipper && \
    cd klipper && \
    git checkout master && \
    rm .git -rf
RUN venv/bin/pip install -r klipper/scripts/klippy-requirements.txt \
 && venv/bin/python -m compileall klipper/klippy \
 && venv/bin/python klipper/klippy/chelper/__init__.py