fix: skip non-binary files in binary loop; don't capture stderr into pkg

This commit is contained in:
Breadway 2026-06-06 23:43:02 +08:00
parent 6b5f4f475f
commit d39c82d697

View file

@ -48,10 +48,14 @@ build_package_json() {
local version local version
version="$(basename "${version_dir}")" version="$(basename "${version_dir}")"
# Collect all binaries in the version dir (files without .sha256 extension). # Collect all binaries in the version dir (executables only; skip metadata files).
local binaries_json="[]" local binaries_json="[]"
for bin_path in "${version_dir}"/*; do for bin_path in "${version_dir}"/*; do
[[ "${bin_path}" == *.sha256 ]] && continue [[ "${bin_path}" == *.sha256 ]] && continue
[[ "${bin_path}" == *.toml ]] && continue
[[ "${bin_path}" == *.service ]] && continue
[[ "${bin_path}" == *.css ]] && continue
[[ "${bin_path}" == *.txt ]] && continue
[[ -f "${bin_path}" ]] || continue [[ -f "${bin_path}" ]] || continue
local bin_name local bin_name
bin_name="$(basename "${bin_path}")" bin_name="$(basename "${bin_path}")"
@ -140,8 +144,8 @@ for entry in "${products[@]}"; do
name="$(echo "${entry}" | awk '{print $1}')" name="$(echo "${entry}" | awk '{print $1}')"
repo="$(echo "${entry}" | awk '{print $2}')" repo="$(echo "${entry}" | awk '{print $2}')"
echo "processing ${name}" echo "processing ${name}"
pkg="$(build_package_json "${name}" "${repo}" 2>&1)" || { echo " skipping ${name}: ${pkg}"; continue; } pkg="$(build_package_json "${name}" "${repo}")" || { echo " skipping ${name}"; continue; }
[[ -z "${pkg}" ]] && continue [[ -z "${pkg}" ]] && { echo " skipping ${name}: no output"; continue; }
packages_json="$(jq -n --argjson m "${packages_json}" --arg k "${name}" --argjson v "${pkg}" '$m + {($k): $v}')" packages_json="$(jq -n --argjson m "${packages_json}" --arg k "${name}" --argjson v "${pkg}" '$m + {($k): $v}')"
done done