alef 0.115.5

Opinionated polyglot binding generator for Rust libraries
Documentation
#!/usr/bin/env bats
{{ header }}
export VERSION={{ version }}
export TAP={{ tap }}
export CLI_FORMULA={{ cli_formula }}
{% if ffi_formula %}
FFI_FORMULA={{ ffi_formula }}
FFI_FORMULA_QUALIFIED="$TAP/$FFI_FORMULA"
{% endif %}

setup_file() {
  brew trust "$TAP" || true
  brew bundle install --file="$BATS_TEST_DIRNAME/Brewfile"
}

setup() {
  export SCRIPT_DIR="$BATS_TEST_DIRNAME"
  bats_load_library xberg-bats
}
{% for test in tests %}

@test {{ test.title }} {
  run bash -euo pipefail -c {{ test.command }}
  xberg_assert_status 0
{% if test.expected %}
  xberg_assert_output_contains {{ test.expected }}
{% endif %}
}
{% endfor %}
{% if ffi_formula %}

@test "ffi-smoke" {
  FFI_CFLAGS=""
  FFI_LIBS=""
  if command -v pkg-config &>/dev/null; then
    FFI_CFLAGS=$(pkg-config --cflags "$FFI_FORMULA" 2>/dev/null || true)
    FFI_LIBS=$(pkg-config --libs "$FFI_FORMULA" 2>/dev/null || true)
  fi
  if [[ -z "$FFI_CFLAGS" || -z "$FFI_LIBS" ]]; then
    FFI_PREFIX=$(brew --prefix "$FFI_FORMULA_QUALIFIED")
    FFI_CFLAGS="-I$FFI_PREFIX/include"
    FFI_LIB_NAME={{ ffi_lib_name }}
    FFI_LIBS="-L$FFI_PREFIX/lib -l${FFI_LIB_NAME}"
  fi
  # shellcheck disable=SC2086
  cc $FFI_CFLAGS -o "$BATS_TEST_TMPDIR/ffi_smoke" "$BATS_TEST_DIRNAME/ffi_smoke.c" $FFI_LIBS
  run "$BATS_TEST_TMPDIR/ffi_smoke"
  xberg_assert_status 0
}
{% endif %}