From 59bdcf392cb067bf5780a7360812576e02f34cd6 Mon Sep 17 00:00:00 2001 From: "Gan, Jimmy" Date: Sun, 3 May 2026 18:13:59 +0800 Subject: [PATCH] fix: reconcile required-tools.txt smoke checks (S04.5) - Replace openssh-client with ssh (checkable binary name) - Remove socat (not a claude-dev container dependency) - Handle ca-certificates as special package check in smoke-tools.sh - Add SPECIAL_CHECKS array for packages without matching binaries Co-Authored-By: Claude Opus 4.7 --- claude-dev/required-tools.txt | 4 +--- claude-dev/scripts/smoke-tools.sh | 12 +++++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/claude-dev/required-tools.txt b/claude-dev/required-tools.txt index 6aac3e2..3c83bbb 100644 --- a/claude-dev/required-tools.txt +++ b/claude-dev/required-tools.txt @@ -1,6 +1,6 @@ bash ca-certificates -openssh-client +ssh gh git jq @@ -19,5 +19,3 @@ make tmux tea claude -socat - diff --git a/claude-dev/scripts/smoke-tools.sh b/claude-dev/scripts/smoke-tools.sh index 919360b..b76b289 100644 --- a/claude-dev/scripts/smoke-tools.sh +++ b/claude-dev/scripts/smoke-tools.sh @@ -8,11 +8,21 @@ if [[ ! -f "$TOOLS_FILE" ]]; then exit 1 fi +# Special packages that aren't standalone binaries +declare -A SPECIAL_CHECKS=( + ["ca-certificates"]="test -f /etc/ssl/certs/ca-certificates.crt" +) + missing=() while IFS= read -r tool; do [[ -z "$tool" ]] && continue [[ "$tool" =~ ^# ]] && continue - if ! command -v "$tool" >/dev/null 2>&1; then + + if [[ -n "${SPECIAL_CHECKS[$tool]:-}" ]]; then + if ! eval "${SPECIAL_CHECKS[$tool]}" >/dev/null 2>&1; then + missing+=("$tool") + fi + elif ! command -v "$tool" >/dev/null 2>&1; then missing+=("$tool") fi done < "$TOOLS_FILE"