51 lines
1.5 KiB
Bash
Executable File
51 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
plist_path="${1:-packaging/macos/Info.plist}"
|
|
|
|
if [[ ! -f "${plist_path}" ]]; then
|
|
echo "${plist_path}: plist file is missing"
|
|
exit 1
|
|
fi
|
|
|
|
plutil -lint "${plist_path}" >/dev/null
|
|
|
|
plist_value() {
|
|
/usr/libexec/PlistBuddy -c "Print :$1" "${plist_path}"
|
|
}
|
|
|
|
assert_value() {
|
|
local key="$1"
|
|
local expected="$2"
|
|
local actual
|
|
actual="$(plist_value "${key}")"
|
|
if [[ "${actual}" != "${expected}" ]]; then
|
|
echo "${plist_path}: ${key} expected '${expected}', got '${actual}'"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
assert_value "CFBundleDisplayName" "ELY Browser"
|
|
assert_value "CFBundleName" "ELY Browser"
|
|
assert_value "CFBundleIdentifier" "com.elydora.ely-browser"
|
|
assert_value "CFBundleIconFile" "AppIcon"
|
|
assert_value "CFBundleGetInfoString" "ELY Browser by Elydora"
|
|
assert_value "CFBundleExecutable" "ely_app"
|
|
assert_value "CFBundlePackageType" "APPL"
|
|
assert_value "LSApplicationCategoryType" "public.app-category.productivity"
|
|
|
|
url_name="$(/usr/libexec/PlistBuddy -c "Print :CFBundleURLTypes:0:CFBundleURLName" "${plist_path}")"
|
|
url_scheme="$(/usr/libexec/PlistBuddy -c "Print :CFBundleURLTypes:0:CFBundleURLSchemes:0" "${plist_path}")"
|
|
|
|
if [[ "${url_name}" != "com.elydora.ely-browser" ]]; then
|
|
echo "${plist_path}: URL type name expected 'com.elydora.ely-browser', got '${url_name}'"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "${url_scheme}" != "ely" ]]; then
|
|
echo "${plist_path}: URL scheme expected 'ely', got '${url_scheme}'"
|
|
exit 1
|
|
fi
|
|
|
|
echo "${plist_path}: macOS bundle metadata ok"
|