50 lines · 1.5 KB · Shell
RawDownload
#!/usr/bin/env bashset -euo pipefail ROOT=$(cd "$(dirname "$0")/.." && pwd)PACKAGE_SCRIPT="$ROOT/Scripts/package_app.sh"PLIST_SCRIPT=$(mktemp "${TMPDIR:-/tmp}/codexbar-package-info-plist-script.XXXXXX")TEMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/codexbar-package-info-plist.XXXXXX")trap 'rm -f "$PLIST_SCRIPT"; rm -rf "$TEMP_DIR"' EXIT python3 - "$PACKAGE_SCRIPT" "$PLIST_SCRIPT" <<'PY'import sysfrom pathlib import Path script = Path(sys.argv[1]).read_text()start = script.index('cat > "$APP/Contents/Info.plist" <<PLIST')end = script.index('\nPLIST\n', start) + len('\nPLIST\n')Path(sys.argv[2]).write_text(script[start:end])PY APP="$TEMP_DIR/CodexBar.app"mkdir -p "$APP/Contents"BUNDLE_ID=com.steipete.codexbar.testMARKETING_VERSION=0.0.0BUILD_NUMBER=0FEED_URL=https://example.invalid/appcast.xmlAUTO_CHECKS=falseBUILD_TIMESTAMP=2026-01-01T00:00:00ZGIT_COMMIT=testAPP_TEAM_ID=TESTTEAMsource "$PLIST_SCRIPT" if command -v plutil >/dev/null 2>&1; then  plutil -lint "$APP/Contents/Info.plist"fipython3 - "$APP/Contents/Info.plist" <<'PY'import plistlibimport sysfrom pathlib import Path plist = plistlib.loads(Path(sys.argv[1]).read_bytes())declarations = plist.get("UTExportedTypeDeclarations")assert declarations == [{    "UTTypeIdentifier": "com.steipete.codexbar.menu-layout-item",    "UTTypeDescription": "CodexBar menu bar layout token",    "UTTypeConformsTo": ["public.data"],    "UTTypeTagSpecification": {},}]PY echo "Package Info.plist tests passed."

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t