blob: 6aa4a60171c0d036cf5a2af297aec3ab2252eb9a [file] [log] [blame]
#!/usr/bin/env bash
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This updates the prebuilt ffmpeg artifacts in prebuilt/{x64,arm64} to the version specified in
# prebuilt/version. See README.md for instructions on updating the prebuilts.
set -eu
readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
readonly PREBUILT_VERSION="$(cat ${SCRIPT_ROOT}/prebuilt/version)"
readonly X64_DIR="${SCRIPT_ROOT}/prebuilt/x64"
readonly ARM64_DIR="${SCRIPT_ROOT}/prebuilt/arm64"
readonly URL_BASE="https://storage.googleapis.com/fuchsia/lib/ffmpeg"
mkdir -p "${X64_DIR}"
mkdir -p "${ARM64_DIR}"
# download <url> <path>
function download() {
local url="${1}"
local path="${2}"
curl -f --progress-bar -continue-at=- --location --output "${path}" "${url}"
}
# download_file_if_needed <name> <version> <base url> <base path>
function download_file_if_needed() {
local name="${1}"
local version="${2}"
local base_url="${3}"
local base_path="${4}"
local path="${base_path}/${name}"
local stamp_path="${base_path}.stamp"
local requested_url="${base_url}/${version}/${name}"
if [[ ! -f "${stamp_path}" ]] || [[ "${requested_url}" != "$(cat "${stamp_path}")" ]]; then
echo "Downloading ${requested_url} to ${path}"
rm -f -- "${path}"
download "${requested_url}" "${path}"
echo "${requested_url}" > "${stamp_path}"
fi
}
# download_tarball <name> <base url> <untar directory>
function download_tarball() {
local name="${1}"
local base_url="${2}"
local untar_dir="${3}"
local filename="libffmpeg.tar.gz"
local tar_path="${untar_dir}/${filename}"
download_file_if_needed "${filename}" "${PREBUILT_VERSION}" "${base_url}" "${untar_dir}"
if [[ -f "${tar_path}" ]]; then
mkdir -p -- "${untar_dir}"
(cd -- "${untar_dir}" && tar xzf "${tar_path}" 2>/dev/null)
rm -f -- "${tar_path}"
fi
}
download_tarball "prebuilt/libffmpeg_x64.tar.gz" "${URL_BASE}/fuchsia-amd64" "${X64_DIR}"
download_tarball "prebuilt/libffmpeg_arm64.tar.gz" "${URL_BASE}/fuchsia-arm64" "${ARM64_DIR}"