| #!/bin/bash |
| # Copyright 2016 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. |
| |
| set -e |
| |
| readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)" |
| readonly BUCKET="depthcharge" |
| |
| function process_sha_file() { |
| local sha_file="${1}" |
| local base_file="${sha_file%.sha1}" |
| local stamp_file="${base_file}.stamp" |
| |
| local requested_hash="$(cat "${sha_file}")" |
| local url="https://storage.googleapis.com/${BUCKET}/${requested_hash}" |
| |
| if [[ ! -f "${stamp_file}" || "${requested_hash}" != "$(cat "${stamp_file}")" ]]; then |
| echo "Downloading ${base_file} (${requested_hash})..." |
| rm -f -- "${base_file}.tmp" |
| curl --progress-bar -continue-at=- --location --output "${base_file}.tmp" "${url}" |
| local actual_hash="$(shasum -a1 "${base_file}.tmp" | cut -d ' ' -f 1)" |
| if [[ "${actual_hash}" != "${requested_hash}" ]]; then |
| echo "${base_file} is corrupted." |
| else |
| mv -- "${base_file}.tmp" "${base_file}" |
| echo "${requested_hash}" > "${stamp_file}" |
| fi |
| fi |
| } |
| |
| find "${SCRIPT_ROOT}" -name '*.sha1' | while read SHA; do |
| process_sha_file "${SHA}" |
| done |