92 lines
3.4 KiB
Bash
Executable File
92 lines
3.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -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 1
|
|
fi
|
|
grep -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 1
|
|
fi
|
|
grep -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 1
|
|
fi
|
|
grep -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 1
|
|
fi
|
|
grep -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 1
|
|
fi
|
|
grep -Fq "SwiftPM reported an empty" "$TEMP_DIR/empty.log"
|
|
|
|
echo "Package product path tests passed."
|