blob: c7f294e69b1838a7c9b9f6c25d1da62b725b8b47 [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
9EXTANT="$(mktemp "${TMPDIR:-/tmp}/extant.XXXXXXXXXX")"
10gsutil ls gs://skia-skqp-assets/ | sed 's|^gs://skia-skqp-assets/||' > "$EXTANT"
11
12upload() {
13 MD5=$(md5sum < "$1" | head -c 32)
14 if ! grep -q "$MD5" "$EXTANT"; then
15 URL="gs://skia-skqp-assets/$MD5"
Hal Canary8d4a9f02018-01-23 14:44:27 -050016 gsutil cp "$1" "$URL" > /dev/null 2>&1 &
Hal Canary23fda7a2018-01-23 09:22:38 +000017 fi
18 echo $MD5
19}
20
21cd "$(dirname "$0")/../../platform_tools/android/apps/skqp/src/main/assets"
22
23rm -f files.checksum
24
25FILES="$(mktemp "${TMPDIR:-/tmp}/files.XXXXXXXXXX")"
26
27: > "$FILES"
28
29COUNT=$(find * -type f | wc -l)
30INDEX=1
Hal Canary8d4a9f02018-01-23 14:44:27 -050031SHARD_COUNT=32
32
Hal Canary23fda7a2018-01-23 09:22:38 +000033find * -type f | sort | while IFS= read -r FILENAME; do
34 printf '\r %d / %d ' "$INDEX" "$COUNT"
Hal Canary23fda7a2018-01-23 09:22:38 +000035 if ! [ -f "$FILENAME" ]; then
36 echo error [${FILENAME}] >&2;
37 exit 1;
38 fi
39 case "$FILENAME" in *\;*) echo bad filename: $FILENAME >&2; exit 1;; esac
40 MD5=$(upload "$FILENAME")
41 printf '%s;%s\n' "$MD5" "$FILENAME" >> "$FILES"
Hal Canary23fda7a2018-01-23 09:22:38 +000042
Hal Canary8d4a9f02018-01-23 14:44:27 -050043 if [ $(($INDEX % $SHARD_COUNT)) = 0 ]; then
44 wait
45 fi
46 INDEX=$(( $INDEX + 1))
47done
48printf '\rdone \n'
Hal Canary23fda7a2018-01-23 09:22:38 +000049upload "$FILES" > files.checksum
Hal Canary3da15bb2018-01-23 14:52:58 -050050wait
Hal Canary23fda7a2018-01-23 09:22:38 +000051
52rm "$FILES" "$EXTANT"