# zoxide's upstream tests only validate generated scripts, so this image installs a
# pinned release and runs the small PTY-driven shell-integration suite in tests/.
FROM ubuntu:26.04
ARG ZOXIDE_VERSION=0.10.0
# Bump these together with ZOXIDE_VERSION; upstream publishes no checksum file, so they
# are the sha256 of the release tarballs themselves.
ARG ZOXIDE_SHA256_X86_64=2d93385b99f3e82cf2701609a1bffcad863fbeb75aa3fe7eb6be4d29be68b1ae
ARG ZOXIDE_SHA256_AARCH64=f1f16c5d6298d63dee467eedea1cdcd8490e43e493bea43acd416dc9033ef641
RUN apt-get update && apt-get install -y --no-install-recommends \
        ca-certificates curl python3-pexpect python3-pytest \
    && rm -rf /var/lib/apt/lists/*
RUN case "$(uname -m)" in \
        x86_64) target=x86_64-unknown-linux-musl; sha=$ZOXIDE_SHA256_X86_64 ;; \
        aarch64) target=aarch64-unknown-linux-musl; sha=$ZOXIDE_SHA256_AARCH64 ;; \
        *) exit 1 ;; \
    esac \
    && curl -fsSL -o /tmp/zoxide.tar.gz \
       "https://github.com/ajeetdsouza/zoxide/releases/download/v${ZOXIDE_VERSION}/zoxide-${ZOXIDE_VERSION}-${target}.tar.gz" \
    && echo "$sha  /tmp/zoxide.tar.gz" | sha256sum -c - \
    && tar -xzf /tmp/zoxide.tar.gz -C /usr/local/bin zoxide \
    && rm /tmp/zoxide.tar.gz
COPY zoxide/entrypoint.sh zoxide/skip-list.txt /e2e/
COPY zoxide/tests /e2e/tests
COPY lib /e2e/lib
ENV LANG=C.UTF-8 PYTHONPATH=/e2e/lib
ENTRYPOINT ["/e2e/entrypoint.sh"]
