@@ -7,6 +7,7 @@ ARG DEBIAN_FRONTEND=noninteractive
77ARG NODE_MAJOR=24
88ARG OXIPNG_VERSION=10.1.1
99ARG HADOLINT_VERSION=2.13.1
10+ ARG XH_VERSION=0.25.3
1011ARG WEBSOCAT_VERSION=1.14.1
1112ARG BUN_INSTALL=/opt/bun
1213ARG UV_INSTALL_DIR=/usr/local/bin
@@ -98,7 +99,6 @@ RUN printf '%s\n' \
9899 pipx \
99100 virtualenv \
100101 csvkit \
101- xh \
102102 jq \
103103 yq \
104104 ripgrep \
@@ -226,12 +226,14 @@ RUN set -eux; \
226226 aws_arch="x86_64" ; \
227227 hadolint_arch="x86_64" ; \
228228 supabase_arch="amd64" ; \
229+ xh_arch="x86_64-unknown-linux-musl" ; \
229230 websocat_asset="websocat.x86_64-unknown-linux-musl" ; \
230231 ;; \
231232 arm64) \
232233 aws_arch="aarch64" ; \
233234 hadolint_arch="arm64" ; \
234235 supabase_arch="arm64" ; \
236+ xh_arch="aarch64-unknown-linux-musl" ; \
235237 websocat_asset="websocat.aarch64-unknown-linux-musl" ; \
236238 ;; \
237239 *) \
@@ -251,9 +253,13 @@ RUN set -eux; \
251253 apt-get update; \
252254 apt-get install -y --no-install-recommends /tmp/supabase.deb; \
253255 rm -rf /var/lib/apt/lists/*; \
256+ curl -fsSL -o /tmp/xh.tar.gz "https://github.com/ducaale/xh/releases/download/v${XH_VERSION}/xh-v${XH_VERSION}-${xh_arch}.tar.gz" ; \
257+ mkdir -p /tmp/xh; \
258+ tar -xzf /tmp/xh.tar.gz -C /tmp/xh; \
259+ install -m 0755 "/tmp/xh/xh-v${XH_VERSION}/${xh_arch}/xh" /usr/local/bin/xh; \
254260 curl -fsSL -o /usr/local/bin/websocat "https://github.com/vi/websocat/releases/download/v${WEBSOCAT_VERSION}/${websocat_asset}" ; \
255261 chmod +x /usr/local/bin/websocat; \
256- rm -rf /tmp/aws /tmp/awscliv2.zip /tmp/install-duckdb.sh /tmp/supabase.deb
262+ rm -rf /tmp/aws /tmp/awscliv2.zip /tmp/install-duckdb.sh /tmp/supabase.deb /tmp/xh /tmp/xh.tar.gz
257263
258264RUN curl -LsSf https://astral.sh/uv/install.sh | sh \
259265 && uv --version \
0 commit comments