#!/bin/sh set -eu DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) CACHE_FILE="$DIR/.selected_host_abi" run_probe() { bin="$1" [ -x "$bin" ] || return 1 LD_LIBRARY_PATH="$DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" \ PJARCZAK_BAMBU_PROBE_LOG_DIR="${PJARCZAK_BAMBU_PROBE_LOG_DIR:-$DIR}" \ PJARCZAK_BAMBU_COUNTRY_CODE="${PJARCZAK_BAMBU_COUNTRY_CODE:-PL}" \ "$bin" --probe-auth >/dev/null 2>&1 } choose_bin() { forced="${PJARCZAK_FORCE_HOST_ABI:-}" if [ -n "$forced" ] && [ -x "$DIR/pjarczak_bambu_linux_host_$forced" ]; then printf '%s\n' "$DIR/pjarczak_bambu_linux_host_$forced" return 0 fi if [ -f "$CACHE_FILE" ]; then cached=$(cat "$CACHE_FILE" 2>/dev/null || true) if [ -n "$cached" ] && [ -x "$DIR/pjarczak_bambu_linux_host_$cached" ]; then printf '%s\n' "$DIR/pjarczak_bambu_linux_host_$cached" return 0 fi fi for abi in abi1 abi0; do if run_probe "$DIR/pjarczak_bambu_linux_host_$abi"; then printf '%s' "$abi" > "$CACHE_FILE" printf '%s\n' "$DIR/pjarczak_bambu_linux_host_$abi" return 0 fi done if [ -x "$DIR/pjarczak_bambu_linux_host_abi1" ]; then printf '%s\n' "$DIR/pjarczak_bambu_linux_host_abi1" return 0 fi if [ -x "$DIR/pjarczak_bambu_linux_host_abi0" ]; then printf '%s\n' "$DIR/pjarczak_bambu_linux_host_abi0" return 0 fi return 1 } BIN=$(choose_bin) || { echo "no compatible host ABI variant found" >&2 exit 127 } if [ "${1:-}" = "--print-bin" ]; then printf '%s\n' "$BIN" exit 0 fi export LD_LIBRARY_PATH="$DIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" exec "$BIN" "$@"