FROM ubuntu:18.04

RUN apt-get update && apt-get install -y git wget libncurses-dev flex bison gperf \
  python python-pip python-setuptools python-serial python-click \
  python-cryptography python-future python-pyparsing \
  python-pyelftools cmake ninja-build ccache libusb-1.0

RUN mkdir /workspace
WORKDIR /workspace

# Download and checkout known good esp-idf commit
RUN git clone --recursive https://github.com/espressif/esp-idf.git esp-idf
RUN cd esp-idf && git checkout 4dac7c7df885adaa86a5c79f2adeaf8d68667349
RUN git clone https://github.com/sle118/squeezelite-esp32.git

# Download GCC 5.2.0
RUN wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
RUN tar -xzf xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
RUN rm xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz

# Patch I2S in esp-idf
RUN cp /workspace/squeezelite-esp32/idf-patch/i2s.c /workspace/esp-idf/components/driver/i2s.c
RUN rm -r /workspace/squeezelite-esp32
RUN mkdir /workspace/squeezelite-esp32

# Setup PATH to use esp-idf and gcc-5.2.0
RUN touch /root/.bashrc && \
 echo export PATH="\$PATH:/workspace/xtensa-esp32-elf/bin" >> /root/.bashrc && \
 echo export IDF_PATH=/workspace/esp-idf >> /root/.bashrc

# OPTIONAL: Install vim for text editing in Bash
RUN apt-get update && apt-get install -y vim

WORKDIR /workspace/squeezelite-esp32
CMD ["bash"]