blob: b1058e6247d45f69357af30280c5f4e9bd972a1b [file] [log] [blame]
Hal Canary23fda7a2018-01-23 09:22:38 +00001#! /bin/sh
2
3# Copyright 2018 Google Inc.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7set -e
8
Hal Canaryce243ba2018-01-30 16:08:17 -05009BASE_DIR='platform_tools/android/apps/skqp/src/main/assets'
Hal Canaryac7f23c2018-11-26 14:07:41 -050010PATH_LIST='gmkb'
Hal Canaryce243ba2018-01-30 16:08:17 -050011BUCKET=skia-skqp-assets
12
Hal Canary23fda7a2018-01-23 09:22:38 +000013EXTANT="$(mktemp "${TMPDIR:-/tmp}/extant.XXXXXXXXXX")"
Hal Canaryce243ba2018-01-30 16:08:17 -050014gsutil ls gs://$BUCKET/ | sed "s|^gs://$BUCKET/||" > "$EXTANT"
Hal Canary23fda7a2018-01-23 09:22:38 +000015
16upload() {
17 MD5=$(md5sum < "$1" | head -c 32)
18 if ! grep -q "$MD5" "$EXTANT"; then
Hal Canaryce243ba2018-01-30 16:08:17 -050019 URL="gs://${BUCKET}/$MD5"
Hal Canary8d4a9f02018-01-23 14:44:27 -050020 gsutil cp "$1" "$URL" > /dev/null 2>&1 &
Hal Canary23fda7a2018-01-23 09:22:38 +000021 fi
22 echo $MD5
23}
24
Hal Canaryce243ba2018-01-30 16:08:17 -050025size() { gsutil du -s gs://$BUCKET | awk '{print $1}'; }
26
27cd "$(dirname "$0")/../../$BASE_DIR"
Hal Canary23fda7a2018-01-23 09:22:38 +000028
29rm -f files.checksum
30
31FILES="$(mktemp "${TMPDIR:-/tmp}/files.XXXXXXXXXX")"
32
33: > "$FILES"
34
Hal Canaryce243ba2018-01-30 16:08:17 -050035COUNT=$(find $PATH_LIST -type f | wc -l)
Hal Canary23fda7a2018-01-23 09:22:38 +000036INDEX=1
Hal Canary8d4a9f02018-01-23 14:44:27 -050037SHARD_COUNT=32
38
Hal Canaryce243ba2018-01-30 16:08:17 -050039SIZE=$(size)
40find $PATH_LIST -type f | sort | while IFS= read -r FILENAME; do
Hal Canary23fda7a2018-01-23 09:22:38 +000041 printf '\r %d / %d ' "$INDEX" "$COUNT"
Hal Canary23fda7a2018-01-23 09:22:38 +000042 if ! [ -f "$FILENAME" ]; then
43 echo error [${FILENAME}] >&2;
44 exit 1;
45 fi
46 case "$FILENAME" in *\;*) echo bad filename: $FILENAME >&2; exit 1;; esac
47 MD5=$(upload "$FILENAME")
48 printf '%s;%s\n' "$MD5" "$FILENAME" >> "$FILES"
Hal Canary23fda7a2018-01-23 09:22:38 +000049
Hal Canary8d4a9f02018-01-23 14:44:27 -050050 if [ $(($INDEX % $SHARD_COUNT)) = 0 ]; then
51 wait
52 fi
53 INDEX=$(( $INDEX + 1))
54done
55printf '\rdone \n'
Hal Canary23fda7a2018-01-23 09:22:38 +000056upload "$FILES" > files.checksum
Hal Canary3da15bb2018-01-23 14:52:58 -050057wait
Hal Canary23fda7a2018-01-23 09:22:38 +000058
Hal Canaryce243ba2018-01-30 16:08:17 -050059D=$(( $(size) - $SIZE ))
60printf 'Added %d bytes to %s, %d%%\n' $D $BUCKET $(( $D * 100 / $SIZE ))
61
62rm "$EXTANT"