FROM althack/ros2:humble-full

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 
USER root

# install zsh and oh-my-zsh
RUN apt update && apt install -y zsh git
RUN wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh && chmod +x install.sh && ls
RUN ./install.sh
RUN git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
    apt install zsh-syntax-highlighting

# configure zsh
RUN echo 'export ZSH=$HOME/.oh-my-zsh' >> ~/.zshrc && \
    echo 'ZSH_THEME="ys"' >> ~/.zshrc && \
    echo 'plugins=(git zsh-autosuggestions)' >> ~/.zshrc && \
    echo 'source $ZSH/oh-my-zsh.sh' >> ~/.zshrc && \
    echo 'source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc

# install clang tools
RUN wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && ./llvm.sh 18 all
RUN update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-18 100 \
    && update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100 \
    && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 100 \
    && update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-18 100 \
    && update-alternatives --install /usr/bin/run-clang-tidy run-clang-tidy /usr/bin/run-clang-tidy-18 100
ENV CC=/usr/bin/clang-18
ENV CXX=/usr/bin/clang++-18

WORKDIR /workspace
RUN echo "source /opt/ros/humble/setup.sh" >> ~/.zshrc 
RUN apt update && apt install -y ros-humble-rmw-cyclonedds-cpp ros-humble-rosidl-generator-dds-idl
CMD [ "zsh" ]