forked from coreos/scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
core_roller_upload
executable file
·64 lines (52 loc) · 2.08 KB
/
core_roller_upload
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/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 "${COREOS_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}"