mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-08 09:37:47 +03:00
29 lines
1.3 KiB
Bash
Executable File
29 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# sign-cli-macos.sh <build-npm dir> <out dir>: signs the three macOS CLI binaries inside their npm tarballs with
|
|
# the Developer ID in build.keychain, then writes the re-packed tarballs and the opencode-<target>.zip archives.
|
|
# Dry runs sign ad-hoc.
|
|
. "$(dirname "$0")/lib.sh"
|
|
|
|
in=$1 out=$2
|
|
mkdir -p "$out"
|
|
identity=- timestamp=--timestamp=none
|
|
if ! dry_run; then
|
|
identity=$(security find-identity -v -p codesigning build.keychain | sed -n 's/.*"\(Developer ID Application:.*\)"/\1/p' | head -n 1)
|
|
[ -n "$identity" ] || die "Developer ID Application identity not found"
|
|
timestamp=--timestamp
|
|
fi
|
|
|
|
export COPYFILE_DISABLE=1
|
|
for target in darwin-arm64 darwin-x64 darwin-x64-baseline; do
|
|
work=$(mktemp -d)
|
|
tar -xzf "$in/opencode-cli-$target-$OPENCODE_VERSION.tgz" -C "$work"
|
|
bin="$work/package/bin/opencode"
|
|
file -b "$bin" | grep -q '^Mach-O' || die "$target is not a Mach-O binary"
|
|
chmod 755 "$bin"
|
|
codesign --force "$timestamp" --options runtime --entitlements "$release_dir/entitlements/cli.plist" --sign "$identity" "$bin"
|
|
codesign --verify --strict --verbose=2 "$bin"
|
|
tar --no-mac-metadata -czf "$out/opencode-cli-$target-$OPENCODE_VERSION.tgz" -C "$work" package
|
|
touch -t 198001010000 "$bin"
|
|
(cd "$work/package/bin" && zip -X -q "$out/opencode-$target.zip" opencode)
|
|
done
|