2019-01-03 15:30:33 -08:00
|
|
|
#!/bin/bash -e
|
2019-01-18 21:37:51 -07:00
|
|
|
#
|
|
|
|
# script/package
|
|
|
|
# mas
|
|
|
|
#
|
|
|
|
# Builds macOS installer component and distribution packages.
|
|
|
|
#
|
2018-10-15 22:17:07 -06:00
|
|
|
|
2024-11-15 23:21:37 -05:00
|
|
|
mas_dir="$(readlink -fn "$(dirname "${BASH_SOURCE:-"${0}"}")/..")"
|
|
|
|
|
|
|
|
if ! cd -- "${mas_dir}"; then
|
|
|
|
printf $'Error: Could not cd into mas directory: %s\n' "${mas_dir}" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
BUILD_DIR=.build
|
2024-11-15 21:46:11 -05:00
|
|
|
COMPONENT_PACKAGE="${BUILD_DIR}/mas_components.pkg"
|
|
|
|
DISTRIBUTION_PACKAGE="${BUILD_DIR}/mas.pkg"
|
2015-09-20 11:23:36 +01:00
|
|
|
|
2024-11-16 00:12:21 -05:00
|
|
|
IDENTIFIER=com.mphys.mas-cli
|
2019-01-03 16:20:15 -08:00
|
|
|
|
|
|
|
# Distribution package definition
|
|
|
|
# https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html
|
2024-11-16 00:12:21 -05:00
|
|
|
DISTRIBUTION_PLIST=Package/Distribution.plist
|
2018-12-20 18:59:38 -07:00
|
|
|
|
2021-04-28 22:28:29 -07:00
|
|
|
# Destination for install root
|
2024-11-15 23:21:37 -05:00
|
|
|
DSTROOT="${BUILD_DIR}/distributions"
|
2024-11-15 21:46:11 -05:00
|
|
|
script/install "${DSTROOT}/usr/local" --universal
|
2018-12-20 18:59:38 -07:00
|
|
|
|
2024-11-16 13:47:13 -05:00
|
|
|
version="$(script/version)"
|
2018-12-20 18:59:38 -07:00
|
|
|
|
2024-11-16 13:47:13 -05:00
|
|
|
echo "==> 📦 Assembling installer package for mas ${version}"
|
2018-10-15 22:17:07 -06:00
|
|
|
|
2024-11-16 00:12:21 -05:00
|
|
|
# Assemble macOS installer component package (aka 'product archive').
|
2018-10-15 22:17:07 -06:00
|
|
|
pkgbuild \
|
2024-11-15 21:46:11 -05:00
|
|
|
--identifier "${IDENTIFIER}" \
|
2024-11-16 00:12:21 -05:00
|
|
|
--install-location '/' \
|
2024-11-16 13:47:13 -05:00
|
|
|
--version "${version}" \
|
2024-11-15 21:46:11 -05:00
|
|
|
--root "${DSTROOT}" \
|
|
|
|
"${COMPONENT_PACKAGE}"
|
2018-10-15 22:17:07 -06:00
|
|
|
|
2024-11-16 00:12:21 -05:00
|
|
|
# Build distribution package (aka 'product archive'). Not sure why, but this is how Carthage does it.
|
2021-04-28 22:28:29 -07:00
|
|
|
# https://github.com/Carthage/Carthage/blob/master/Makefile#L69
|
2018-10-15 22:17:07 -06:00
|
|
|
productbuild \
|
2024-11-15 21:46:11 -05:00
|
|
|
--distribution "${DISTRIBUTION_PLIST}" \
|
|
|
|
--package-path "${BUILD_DIR}" \
|
|
|
|
"${DISTRIBUTION_PACKAGE}"
|
2018-10-15 22:17:07 -06:00
|
|
|
|
2024-11-16 00:12:21 -05:00
|
|
|
echo '==> 🔢 File Hash'
|
2024-11-15 21:46:11 -05:00
|
|
|
shasum -a 256 "${DISTRIBUTION_PACKAGE}"
|