flatcar-scripts/set_version

98 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
DEFAULT_BASE_URL="https://storage.googleapis.com/flatcar-jenkins"
DEV_BOARD_URL="${DEFAULT_BASE_URL}/developer"
DEFAULT_SDK_URL="${DEFAULT_BASE_URL}/sdk"
DEV_SDK_URL="${DEFAULT_BASE_URL}/developer/sdk"
FILE=~/trunk/.repo/manifests/version.txt
FLATCAR_DEV_BUILDS_SDK=""
FLATCAR_SDK_VERSION=""
FLATCAR_DEV_BUILDS=""
FLATCAR_VERSION=""
FLATCAR_VERSION_ID=""
# To keep this script usable outside of the SDK chroot, do not include common.sh here.
if [[ $# = 0 ]] || [[ "$1" = "-h" ]] || [[ "$1" = "--help" ]]; then
echo "Updates ${FILE} with new values to specify which binary packages to use
Usage: $0 FLAGS...
--board-version (VERSION|BOARD/BRANCH-nightly): Set FLATCAR_VERSION=VERSION and
FLATCAR_VERSION_ID=VERSION where VERSION can
be resolved by looking up the latest build
referenced by
${DEV_BOARD_URL}/boards/BOARD/BRANCH-nightly.txt
where BRANCH can be flatcar-MAJOR for the maintenance
branch of a release with the version MAJOR.MINOR.PATCH,
or the Alpha/Edge development branch
--dev-board: Set FLATCAR_DEV_BUILDS=${DEV_BOARD_URL}
which also selects --dev-sdk unless you specify
--no-dev-sdk
--no-dev-board: Remove existing FLATCAR_DEV_BUILDS
--sdk-version VERSION: Set FLATCAR_SDK_VERSION=VERSION
--dev-sdk: Set FLATCAR_DEV_BUILDS_SDK=${DEV_SDK_URL}
--no-dev-sdk: Use a release SDK even if --dev-board is specified
--file FILE: Modify another file than ${FILE}, useful if run
outside of the SDK chroot. If /dev/stdout or
/dev/stderr is used, only new values are printed.
"
exit 1
fi
while [[ $# -gt 0 ]]; do
ARG="$1"
shift
case "${ARG}" in
--board-version)
VAL="$1"
shift
if [[ "${VAL}" == */*-nightly ]]; then
VAL=$(curl -s -S -f -L "${DEV_BOARD_URL}/boards/${VAL}.txt")
fi
FLATCAR_VERSION="${VAL}"
FLATCAR_VERSION_ID="${VAL}"
;;
--dev-board)
FLATCAR_DEV_BUILDS="${DEV_BOARD_URL}"
;;
--no-dev-board)
FLATCAR_DEV_BUILDS=no
;;
--sdk-version)
FLATCAR_SDK_VERSION="$1"
shift
;;
--dev-sdk)
FLATCAR_DEV_BUILDS_SDK="${DEV_SDK_URL}"
;;
--no-dev-sdk)
FLATCAR_DEV_BUILDS_SDK="${DEFAULT_SDK_URL}"
;;
--file)
FILE="$1"
shift
;;
*)
echo "Unkown argument ${ARG}"
exit 1
;;
esac
done
if [[ "${FILE}" != "/dev/stdout" ]] && [[ "${FILE}" != "/dev/stderr" ]]; then
[[ -n "${FLATCAR_VERSION}" ]] && sed -i "/FLATCAR_VERSION=.*/d" "${FILE}"
[[ -n "${FLATCAR_VERSION_ID}" ]] && sed -i "/FLATCAR_VERSION_ID=.*/d" "${FILE}"
[[ -n "${FLATCAR_DEV_BUILDS}" ]] && sed -i "/FLATCAR_DEV_BUILDS=.*/d" "${FILE}"
[[ -n "${FLATCAR_SDK_VERSION}" ]] && sed -i "/FLATCAR_SDK_VERSION=.*/d" "${FILE}"
[[ -n "${FLATCAR_DEV_BUILDS_SDK}" ]] && sed -i "/FLATCAR_DEV_BUILDS_SDK=.*/d" "${FILE}"
fi
{
[[ -n "${FLATCAR_VERSION}" ]] && echo "FLATCAR_VERSION=${FLATCAR_VERSION}"
[[ -n "${FLATCAR_VERSION_ID}" ]] && echo "FLATCAR_VERSION_ID=${FLATCAR_VERSION_ID}"
[[ -n "${FLATCAR_DEV_BUILDS}" ]] && [[ "${FLATCAR_DEV_BUILDS}" != no ]] && echo "FLATCAR_DEV_BUILDS=${FLATCAR_DEV_BUILDS}"
[[ -n "${FLATCAR_SDK_VERSION}" ]] && echo "FLATCAR_SDK_VERSION=${FLATCAR_SDK_VERSION}"
[[ -n "${FLATCAR_DEV_BUILDS_SDK}" ]] && echo "FLATCAR_DEV_BUILDS_SDK=${FLATCAR_DEV_BUILDS_SDK}"
} >> "${FILE}"