FROM remnux/remnux-distro:latest
LABEL maintainer="tabledevil"

USER root
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Berlin

# Install additional system packages that REMnux doesn't include
RUN apt-get update && apt-get install -y \
    busybox \
    bat \
    catdoc \
    docx2txt \
    fd-find \
    fish \
    fzf \
    mc \
    pipx \
    ripgrep \
    unrtf \
    mpack \
    pandoc \
    zsh \
    zsh-autosuggestions \
    zsh-syntax-highlighting \
    && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Configure pip  
ENV PYTHONDONTWRITEBYTECODE=1
ADD pip.conf /etc/pip.conf

# Install unfurl & dependencies via pipx (for URL analysis)
RUN PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install --include-deps dfir-unfurl \
    && PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx inject dfir-unfurl requests six maclookup

# Install visidata via pipx (for data exploration)
RUN PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install --include-deps visidata

# Install offline help and cheat sheet tools
RUN PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install --include-deps cheat \
    && PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install --include-deps tldr

# Removed navi - focus on tldr and cheat for reliable help system

# Create data directory and set permissions
RUN mkdir -p /data \
    && chown remnux:remnux /data

# Add documentation and streamlined help system
ADD files/README /opt/README
ADD files/command_help /opt/command_help
ADD files/zshrc /etc/zsh/zshrc
ADD files/fish_config.fish /etc/fish/conf.d/remnux.fish
ADD scripts/create-offline-help-system.sh /usr/local/bin/create-offline-help-system.sh
ADD scripts/find-tool /usr/local/bin/find-tool
ADD scripts/fhelp /usr/local/bin/fhelp
ADD scripts/import-remnux-cheatsheets.sh /usr/local/bin/import-remnux-cheatsheets.sh
ADD scripts/convert-remnux-cheats.py /usr/local/bin/convert-remnux-cheats.py
ADD scripts/add-tool-cheats.sh /usr/local/bin/add-tool-cheats.sh
ADD scripts/check-help-coverage.sh /usr/local/bin/check-help-coverage.sh

# Create streamlined offline help system (tldr + cheat)
RUN chmod +x /usr/local/bin/create-offline-help-system.sh /usr/local/bin/find-tool /usr/local/bin/fhelp /usr/local/bin/import-remnux-cheatsheets.sh \
    && chmod +x /usr/local/bin/convert-remnux-cheats.py /usr/local/bin/add-tool-cheats.sh /usr/local/bin/check-help-coverage.sh \
    && /usr/local/bin/create-offline-help-system.sh \
    && /usr/local/bin/add-tool-cheats.sh

# Install Oh My Zsh for remnux user (minimal installation)
RUN su - remnux -c 'sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended' || true \
    && rm -rf /home/remnux/.oh-my-zsh/.git \
    && find /home/remnux/.oh-my-zsh/plugins -mindepth 1 -maxdepth 1 -type d ! -name git ! -name docker ! -name command-not-found ! -name colored-man-pages -exec rm -rf {} + 2>/dev/null || true \
    && rm -rf /home/remnux/.cache/* /tmp/* 2>/dev/null || true

# Update bashrc with welcome message and comprehensive help info
RUN echo 'cat /opt/README' >> /etc/bash.bashrc \
    && echo 'echo ""' >> /etc/bash.bashrc \
    && echo 'echo "📚 Comprehensive Help System:"' >> /etc/bash.bashrc \
    && echo 'echo "  fhelp                   - Complete file analysis help"' >> /etc/bash.bashrc \
    && echo 'echo "  fhelp tools pdf         - Find PDF analysis tools"' >> /etc/bash.bashrc \
    && echo 'echo "  fhelp cheat pdfid.py    - Show command examples"' >> /etc/bash.bashrc \
    && echo 'echo "  fhelp examples          - Browse all examples"' >> /etc/bash.bashrc \
    && echo 'echo "  fhelp pdf               - PDF analysis workflow"' >> /etc/bash.bashrc \
    && echo 'echo ""' >> /etc/bash.bashrc \
    && echo 'echo "  Shells: bash (default), zsh (with Oh My Zsh), fish"' >> /etc/bash.bashrc \
    && echo 'echo ""' >> /etc/bash.bashrc \
    && echo 'alias analyse="fhelp"' >> /etc/bash.bashrc \
    && echo 'alias ?="fhelp"' >> /etc/bash.bashrc \
    && rm -rf /var/cache/* /tmp/* /var/tmp/* /home/remnux/.cache/* /root/.cache/* 2>/dev/null || true

# Switch to remnux user (REMnux default user)
USER remnux
ENV LANG=en_US.UTF-8
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/remnux/.local/bin
WORKDIR /data

CMD ["/bin/bash"]
