mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-01-25 22:58:29 -05:00
* Add provisioning profile support for macOS builds * Fix internal variable names in macOS packaging script * Add fallback git reference for validator actions * Add required repository environment to documention deployment jobs * Pass GitHub pull request number to GitHub CLI explicitly * Use shortened commit hash for Steam nightly versions * Ensure that concurrency check for tagged push uses a boolean value * Update disk image creation function to retry ejection on CI * Fix repository checkout in Flatpak publish action * Fix output paths and filenames of generated appcast XML files * Limit notice about notarization password use to non-CI usage * Remove architecture-specific suffix from appcast artifact name
84 lines
2.0 KiB
Plaintext
84 lines
2.0 KiB
Plaintext
autoload -Uz log_debug log_error log_info log_status log_group log_output log_warning
|
|
|
|
local -r _usage="Usage: %B${0}%b <source> <volume name> <output_name>
|
|
|
|
Create macOS disk image <volume name> <output_name> with contents of <source>"
|
|
|
|
if (( ! # )) {
|
|
log_error 'Called without arguments.'
|
|
log_output ${_usage}
|
|
return 2
|
|
}
|
|
|
|
local source=${1}
|
|
local volume_name=${2}
|
|
local output_name=${3}
|
|
|
|
log_group "Create macOS disk image"
|
|
|
|
local _hdiutil_flags
|
|
if (( _loglevel < 1 )) _hdiutil_flags='-quiet'
|
|
|
|
trap "hdiutil detach ${_hdiutil_flags} /Volumes/${output_name}; rm temp.dmg; log_group; return 2" ERR
|
|
|
|
hdiutil create ${_hdiutil_flags} \
|
|
-volname "${volume_name}" \
|
|
-srcfolder ${source} \
|
|
-ov \
|
|
-fs APFS \
|
|
-format UDRW \
|
|
temp.dmg
|
|
hdiutil attach ${_hdiutil_flags} \
|
|
-noverify \
|
|
-readwrite \
|
|
-mountpoint /Volumes/${output_name} \
|
|
temp.dmg
|
|
|
|
log_info "Waiting 2 seconds to ensure mounted volume is available..."
|
|
sleep 2
|
|
log_status "Done"
|
|
log_info "Setting up disk volume..."
|
|
log_status "Volume icon"
|
|
SetFile -c icnC /Volumes/${output_name}/.VolumeIcon.icns
|
|
log_status "Icon positions"
|
|
osascript package.applescript ${output_name}
|
|
log_status "File permissions"
|
|
chmod -Rf go-w /Volumes/${output_name}
|
|
SetFile -a C /Volumes/${output_name}
|
|
rm -rf -- /Volumes/${output_name}/.fseventsd(N)
|
|
log_info "Converting disk image..."
|
|
|
|
if (( ${+CI} )) {
|
|
local _status=0
|
|
for i ({1..5}) {
|
|
hdiutil detach ${_hdiutil_flags} /Volumes/${output_name} && _status=0 || _status=1
|
|
|
|
if (( status )) {
|
|
log_warning "Unable to eject disk image (attempt #${i}). Retrying."
|
|
} else {
|
|
break
|
|
}
|
|
}
|
|
|
|
if (( status )) {
|
|
log_error "Unable to eject disk image after 5 attempts. Aborting"
|
|
log_group
|
|
return 2
|
|
}
|
|
} else {
|
|
hdiutil detach ${_hdiutil_flags} /Volumes/${output_name}
|
|
}
|
|
|
|
hdiutil convert ${_hdiutil_flags} \
|
|
-format ULMO \
|
|
-ov \
|
|
-o ${output_name}.dmg temp.dmg
|
|
|
|
rm temp.dmg
|
|
|
|
trap '' ERR
|
|
|
|
log_group
|
|
|
|
return 0
|