#!/usr/bin/env bash # Copyright (c) 2013 The CoreOS 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_ROOT=$(dirname $(readlink -f "$0")) # We have to simple-mindedly set GCLIENT_ROOT in case we're running from # au-generator.zip because common.sh will fail while auto-detect it. export GCLIENT_ROOT=$(readlink -f "${SCRIPT_ROOT}/../../") . "${SCRIPT_ROOT}/common.sh" || exit 1 DEFINE_string board "amd64-usr" \ "Board type of the image" DEFINE_string payload "coreos_production_update.gz" \ "Path to the update payload" DEFINE_string version "${FLATCAR_VERSION}" \ "Version number of this build." DEFINE_string app_id "e96281a6-d1af-4bde-9a0a-97b76e56dc57" \ "CoreOS AppId in roller." DEFINE_string user "" \ "User for roller." DEFINE_string api_key "" \ "API key for roller." DEFINE_string endpoint "https://public.update.core-os.net" \ "Roller endpoint to update." DEFINE_string storage "gs://coreos-update" \ "Google Storage location to host the payload." DEFINE_string download "https://update.release.core-os.net" \ "HTTPS location users will download payload from." FLAGS_HELPS="usage: $SCRIPTNAME [flags] Setting everything up for use\n 1) Run 'gsutil config' and use project id coreos-net-storage\n 2) Ensure updateservicectl is installed in your path\n " # Parse flags FLAGS "$@" || exit 1 eval set -- "${FLAGS_ARGV}" switch_to_strict_mode [[ -z "${FLAGS_api_key}" ]] && die "--api_key is required" [[ -z "${FLAGS_user}" ]] && die "--user is required" # Ensure GS URL doesn't have a trailing / FLAGS_storage="${FLAGS_storage%%/}" GS_URL="${FLAGS_storage}/${FLAGS_board}/${FLAGS_version}/update.gz" HTTP_URL="${FLAGS_download}/${FLAGS_board}/${FLAGS_version}/update.gz" gsutil cp "${FLAGS_payload}" "${GS_URL}" updateservicectl \ --server="${FLAGS_endpoint}" \ --user="${FLAGS_user}" \ --key="${FLAGS_api_key}" \ package create \ --app-id="${FLAGS_app_id}" \ --file="${FLAGS_payload}" \ --url="${HTTP_URL}" \ --version="${FLAGS_version}"