123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- autoload -Uz log_error log_status log_info mkcd
- if (( ! ${+commands[curl]} )) {
- log_error 'curl not found. Please install curl.'
- return 2
- }
- if (( ! ${+commands[jq]} )) {
- log_error 'jq not found. Please install jq.'
- return 2
- }
- if (( ! ${+project_root} )) {
- log_error "'project_root' not set. Please set before running ${0}."
- return 2
- }
- if (( ! ${+target} )) {
- log_error "'target' not set. Please set before running ${0}."
- return 2
- }
- local -a curl_opts=()
- if (( ! ${+CI} )) {
- curl_opts+=(--progress-bar)
- } else {
- curl_opts+=(--show-error --silent)
- }
- curl_opts+=(--location -O ${@})
- pushd ${project_root}
- log_info 'Setting up obs-deps...'
- read -r deps_version deps_hash <<< \
- "$(jq -r --arg key "obs-deps" --arg target "${target}" \
- '.dependencies[$key][$target] | {version, hash} | join(" ")' \
- ${buildspec_file})"
- if [[ -z "${deps_version}" ]] {
- log_error 'No obs-deps version found in buildspec.json.'
- return 2
- }
- log_status 'Found obs-deps specification.'
- mkcd ${project_root:h}/obs-build-dependencies
- if [[ ! -f macos-deps-${deps_version}-${target##*-}.tar.xz ]] {
- curl ${curl_opts} \
- "https://github.com/obsproject/obs-deps/releases/download/${deps_version}/macos-deps-${deps_version}-${target##*-}.tar.xz" && \
- log_status "Downloaded obs-deps for ${target}."
- } else {
- log_status 'Found downloaded obs-deps.'
- }
- read -r artifact_checksum _ <<< "$(sha256sum macos-deps-${deps_version}-${target##*-}.tar.xz)"
- if [[ ${deps_hash} != ${artifact_checksum} ]] {
- log_error "Checksum of downloaded obs-deps does not match specification.
- Expected : ${deps_hash}
- Actual : ${artifact_checksum}"
- return 2
- }
- log_status 'Checksum of downloaded obs-deps matches.'
- mkcd obs-plugin-deps
- XZ_OPT=-T0 tar -xzf ../macos-deps-${deps_version}-${target##*-}.tar.xz && log_status 'obs-deps extracted.'
- popd
- pushd ${project_root}
- log_info 'Setting up Qt...'
- read -r qt_version qt_hash <<< \
- "$(jq -r --arg key "obs-deps-qt" --arg target "${target}" \
- '.dependencies[$key][$target] | {version, hash} | join(" ")' \
- ${buildspec_file})"
- if [[ -z "${qt_version}" ]] {
- log_error 'No obs-deps version found in buildspec.json.'
- return 2
- }
- log_status 'Found Qt specification.'
- mkcd ${project_root:h}/obs-build-dependencies
- if [[ ! -f macos-deps-qt-${deps_version}-${target##*-}.tar.xz ]] {
- curl ${curl_opts} \
- "https://github.com/obsproject/obs-deps/releases/download/${deps_version}/macos-deps-qt-${deps_version}-${target##*-}.tar.xz" && \
- log_status "Downloaded Qt for ${target}"
- } else {
- log_status 'Found downloaded Qt.'
- }
- read -r artifact_checksum _ <<< "$(sha256sum macos-deps-qt-${deps_version}-${target##*-}.tar.xz)"
- if [[ ${qt_hash} != ${artifact_checksum} ]] {
- log_error "Checksum of downloaded Qt does not match specification.
- Expected : ${qt_hash}
- Actual : ${artifact_checksum}"
- return 2
- }
- log_status 'Checksum of downloaded Qt matches.'
- mkcd obs-plugin-deps
- XZ_OPT=-T0 tar -xzf ../macos-deps-qt-${qt_version}-${target##*-}.tar.xz && log_status 'Qt extracted.'
- xattr -r -d com.apple.quarantine *
- log_status 'Removed quarantine flag from downloaded dependencies...'
- popd
|