blob: 680e08b7a16c98ebb12365e51541235acdcae692 [file] [log] [blame]
#!/bin/bash
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Script that "builds" and uploads a C++ SDK to GCS.
set -e
SCRIPT_DIR=$(dirname $0)
BUILD_SDK=${SCRIPT_DIR}/build_sdk.py
WORK_DIR=$(mktemp -d -t build_cpp_sdk.XXXXXXXX)
function cleanup_work_dir {
rm -rf "$WORK_DIR"
}
trap cleanup_work_dir EXIT
# Build the SDK.
SDK_DIRNAME=mojo_cpp_sdk
SDK_DIR=${WORK_DIR}/${SDK_DIRNAME}
"$BUILD_SDK" "${SCRIPT_DIR}/data/cpp/cpp.sdk" "$SDK_DIR"
# Get the version (hash).
VERSION=$(cat "${SDK_DIR}/MOJO_SDK_VERSION")
# Abbreviate it to 12 hex digits.
SHORT_VERSION=${VERSION:0:12}
echo "SDK version (hash): ${VERSION} (${SHORT_VERSION})"
# Make a tarball.
TARBALL_FILENAME=mojo_cpp_sdk-${SHORT_VERSION}.tar.gz
TARBALL_FILE=${WORK_DIR}/${TARBALL_FILENAME}
# In a subshell, change to WORK_DIR so that the tarball will only have the
# mojo_cpp_sdk part of the path.
(
cd "${WORK_DIR}"
tar c --owner=root --group=root -z -f "$TARBALL_FILENAME" "$SDK_DIRNAME"
)
# Assume that we're the "latest". Make a file containing the abbreviated hash.
LATEST_FILENAME=LATEST
LATEST_FILE=${WORK_DIR}/${LATEST_FILENAME}
echo "$SHORT_VERSION" > "$LATEST_FILE"
echo "Press enter to upload ${TARBALL_FILENAME} to GCS"
read
GCS_BASE_URL="gs://mojo/sdk/cpp"
# Don't clobber existing tarballs.
gsutil cp -n "$TARBALL_FILE" "${GCS_BASE_URL}/${TARBALL_FILENAME}"
# But allow "LATEST" to be clobbered.
gsutil cp "$LATEST_FILE" "${GCS_BASE_URL}/${LATEST_FILENAME}"
echo "Done!"