mirror of
https://github.com/mas-cli/mas
synced 2024-11-22 11:33:13 +00:00
51 lines
1.8 KiB
Bash
Executable file
51 lines
1.8 KiB
Bash
Executable file
#!/bin/bash -e
|
|
#
|
|
# script/package
|
|
# mas
|
|
#
|
|
# Builds macOS installer component and distribution packages.
|
|
#
|
|
|
|
BUILD_DIR="$PWD/build"
|
|
COMPONENT_PACKAGE="$BUILD_DIR/mas_components.pkg"
|
|
DISTRIBUTION_PACKAGE="$BUILD_DIR/mas.pkg"
|
|
|
|
IDENTIFIER="com.mphys.mas-cli"
|
|
|
|
# Component package definition
|
|
COMPONENTS_PLIST="Package/Components.plist"
|
|
|
|
# Distribution package definition
|
|
# https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html
|
|
DISTRIBUTION_PLIST="Package/Distribution.plist"
|
|
|
|
# Destination for `xcodebuild install`
|
|
# DSTROOT will be updated if unset.
|
|
INSTALL_TEMPORARY_FOLDER=${DSTROOT:-build/distributions}
|
|
mkdir -p "$INSTALL_TEMPORARY_FOLDER"
|
|
|
|
VERSION=$(script/version)
|
|
|
|
echo "==> 📦 Assemble an installer package"
|
|
|
|
# Assemble macOS installer component package (aka "product archive").
|
|
# Using /usr/local prefix to avoid the following errors with "/"
|
|
# - installer: The install failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)
|
|
# - GUI warning: This package is incompatible with this version of macOS and may fail to install. (may damage your system... )
|
|
pkgbuild \
|
|
--identifier "$IDENTIFIER" \
|
|
--install-location "/usr/local" \
|
|
--version "$VERSION" \
|
|
--root "$INSTALL_TEMPORARY_FOLDER" \
|
|
--component-plist "$COMPONENTS_PLIST" \
|
|
"$COMPONENT_PACKAGE"
|
|
|
|
# Build distribution package (aka "product archive"). Not sure why, but this is how Carthage does it.
|
|
# https://github.com/Carthage/Carthage/blob/master/Makefile#L87
|
|
productbuild \
|
|
--distribution "$DISTRIBUTION_PLIST" \
|
|
--package-path "$BUILD_DIR" \
|
|
"$DISTRIBUTION_PACKAGE"
|
|
|
|
echo "==> 🔢 Files Hashes"
|
|
shasum -a 256 "$DISTRIBUTION_PACKAGE"
|