aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/skqp/upload_directory_contents.sh
blob: b4bff31dc58711f428e89b2af92df20c1aff0a15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#! /bin/sh

# Copyright 2018 Google Inc.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

set -e

EXTANT="$(mktemp "${TMPDIR:-/tmp}/extant.XXXXXXXXXX")"
gsutil ls gs://skia-skqp-assets/ | sed 's|^gs://skia-skqp-assets/||'  > "$EXTANT"

upload() {
    MD5=$(md5sum < "$1" | head -c 32)
    if ! grep -q "$MD5" "$EXTANT"; then
        URL="gs://skia-skqp-assets/$MD5"
        gsutil cp "$1" "$URL" > /dev/null 2>&1
    fi
    echo $MD5
}

cd "$(dirname "$0")/../../platform_tools/android/apps/skqp/src/main/assets"

rm -f files.checksum

FILES="$(mktemp "${TMPDIR:-/tmp}/files.XXXXXXXXXX")"

: > "$FILES"

COUNT=$(find * -type f | wc -l)
INDEX=1
find * -type f | sort | while IFS= read -r FILENAME; do
    printf '\r %d / %d   ' "$INDEX" "$COUNT"
    INDEX=$(( $INDEX + 1))
    if ! [ -f "$FILENAME" ]; then
        echo error [${FILENAME}] >&2;
        exit 1;
    fi
    case "$FILENAME" in *\;*) echo bad filename: $FILENAME >&2; exit 1;; esac
    MD5=$(upload "$FILENAME")
    printf '%s;%s\n' "$MD5" "$FILENAME" >> "$FILES"
done

upload "$FILES" > files.checksum

rm "$FILES" "$EXTANT"