91 lines · 3.4 KB · Shell
RawDownload
#!/usr/bin/env bashset -euo pipefail ROOT=$(cd "$(dirname "$0")/.." && pwd)source "$ROOT/Scripts/package_product_paths.sh" TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/codexbar-package-paths.XXXXXX")trap 'rm -rf "$TEMP_DIR"' EXIT NATIVE_DIR="$TEMP_DIR/.build/arm64-apple-macosx/release"SWIFTBUILD_DIR="$TEMP_DIR/.build/out/Products/Release"STAGE_ROOT="$TEMP_DIR/.build/package-products/release"mkdir -p "$NATIVE_DIR/CodexBar.dSYM" "$SWIFTBUILD_DIR/Sparkle.framework" "$SWIFTBUILD_DIR/CodexBar.dSYM"touch "$NATIVE_DIR/CodexBar" "$SWIFTBUILD_DIR/CodexBar" native=$(codexbar_require_product_file "$NATIVE_DIR" CodexBar arm64)[[ "$native" == "$NATIVE_DIR/CodexBar" ]] swiftbuild=$(codexbar_require_product_file "$SWIFTBUILD_DIR" CodexBar arm64)[[ "$swiftbuild" == "$SWIFTBUILD_DIR/CodexBar" ]] framework=$(codexbar_require_product_directory "$SWIFTBUILD_DIR" Sparkle.framework packaging)[[ "$framework" == "$SWIFTBUILD_DIR/Sparkle.framework" ]] dsym=$(codexbar_require_product_directory "$SWIFTBUILD_DIR" CodexBar.dSYM release)[[ "$dsym" == "$SWIFTBUILD_DIR/CodexBar.dSYM" ]] resolved=$(codexbar_resolve_staged_or_reported_file "$STAGE_ROOT" "$SWIFTBUILD_DIR" CodexBar arm64)[[ "$resolved" == "$SWIFTBUILD_DIR/CodexBar" ]] resolved_dsym=$(codexbar_resolve_dsym_path "$STAGE_ROOT" "$SWIFTBUILD_DIR" CodexBar arm64)[[ "$resolved_dsym" == "$SWIFTBUILD_DIR/CodexBar.dSYM" ]] mkdir -p "$STAGE_ROOT/arm64/CodexBar.dSYM"touch "$STAGE_ROOT/arm64/CodexBar"staged=$(codexbar_resolve_staged_or_reported_file "$STAGE_ROOT" "$SWIFTBUILD_DIR" CodexBar arm64)[[ "$staged" == "$STAGE_ROOT/arm64/CodexBar" ]]staged_dsym=$(codexbar_resolve_dsym_path "$STAGE_ROOT" "$SWIFTBUILD_DIR" CodexBar arm64)[[ "$staged_dsym" == "$STAGE_ROOT/arm64/CodexBar.dSYM" ]] rm -rf "$STAGE_ROOT"rm "$SWIFTBUILD_DIR/CodexBar"if codexbar_resolve_staged_or_reported_file "$STAGE_ROOT" "$SWIFTBUILD_DIR" CodexBar arm64 \  2>"$TEMP_DIR/missing-file.log"; then  echo "ERROR: Missing reported product unexpectedly fell back to legacy output." >&2  exit 1figrep -Fq "$SWIFTBUILD_DIR/CodexBar" "$TEMP_DIR/missing-file.log" rm -rf "$SWIFTBUILD_DIR/Sparkle.framework"if codexbar_require_product_directory "$SWIFTBUILD_DIR" Sparkle.framework packaging \  2>"$TEMP_DIR/missing-directory.log"; then  echo "ERROR: Missing reported framework was accepted." >&2  exit 1figrep -Fq "$SWIFTBUILD_DIR/Sparkle.framework" "$TEMP_DIR/missing-directory.log" rm -rf "$SWIFTBUILD_DIR/CodexBar.dSYM"if codexbar_resolve_dsym_path "$STAGE_ROOT" "$SWIFTBUILD_DIR" CodexBar arm64 \  2>"$TEMP_DIR/missing-dsym.log"; then  echo "ERROR: Missing reported dSYM unexpectedly fell back to legacy output." >&2  exit 1figrep -Fq "$SWIFTBUILD_DIR/CodexBar.dSYM" "$TEMP_DIR/missing-dsym.log" swift() {  [[ "$*" == "build --show-bin-path -c release --arch arm64" ]]  printf '%s\n' "$SWIFTBUILD_DIR"}reported=$(codexbar_swiftpm_bin_path release arm64)[[ "$reported" == "$SWIFTBUILD_DIR" ]] swift() {  return 23}if codexbar_swiftpm_bin_path release arm64 2>"$TEMP_DIR/query.log"; then  echo "ERROR: SwiftPM bin-path query failure was ignored." >&2  exit 1figrep -Fq "SwiftPM failed to report" "$TEMP_DIR/query.log" swift() {  return 0}if codexbar_swiftpm_bin_path release arm64 2>"$TEMP_DIR/empty.log"; then  echo "ERROR: Empty SwiftPM bin path was accepted." >&2  exit 1figrep -Fq "SwiftPM reported an empty" "$TEMP_DIR/empty.log" echo "Package product path tests passed."