cos-kernel-devenv: let user specify custom toolchain version
Add `-t` comman-line switch that allows container consumer to specify
a custom version of ChromiumOS-packaged toolchain for a freestyle
development mode.
Change-Id: Ie1af825ae8e5ecfe715c00e830c2dae946b4b798
Reviewed-on: https://cos-review.googlesource.com/c/cos/tools/+/24235
Cloud-Build: GCB Service account <228075978874@cloudbuild.gserviceaccount.com>
Reviewed-by: Meena Shanmugam <meenashanmugam@google.com>
Reviewed-by: Roy Yang <royyang@google.com>
Tested-by: Oleksandr Tymoshenko <ovt@google.com>
diff --git a/src/cmd/cos_kernel_devenv/devenv.sh b/src/cmd/cos_kernel_devenv/devenv.sh
index f5583af..73225bf 100755
--- a/src/cmd/cos_kernel_devenv/devenv.sh
+++ b/src/cmd/cos_kernel_devenv/devenv.sh
@@ -28,7 +28,6 @@
MODE=""
CROS_TC_VERSION="2021.06.26.094653"
-CROS_TC_DATE="2021/06"
CROS_TC_DOWNLOAD_GCS="https://storage.googleapis.com/chromiumos-sdk/"
# Can be overridden by the command-line argument
@@ -224,7 +223,8 @@
install_generic_cross_toolchain() {
info "Downloading and installing a toolchain"
# Download toolchain_env if present
- local -r tc_download_url="${CROS_TC_DOWNLOAD_GCS}${CROS_TC_DATE}/${TOOLCHAIN_ARCH}-cros-linux-gnu-${CROS_TC_VERSION}.tar.xz"
+ local -r tc_date="$(echo ${CROS_TC_VERSION} | sed -E 's/\.(..).*/\/\1/')"
+ local -r tc_download_url="${CROS_TC_DOWNLOAD_GCS}${tc_date}/${TOOLCHAIN_ARCH}-cros-linux-gnu-${CROS_TC_VERSION}.tar.xz"
# Install toolchain pkg
install_cross_toolchain_pkg "${tc_download_url}"
@@ -286,13 +286,14 @@
usage() {
echo "Usage: $0 [-k | -m] [-A <x86|arm64>] [-B <build>] [-C <config>]" 1>&2
echo " [-B <build> | -b <board> -R <release> | -G <GCS_bucket>]"
+ echo " [-t <toolchain_version>]"
exit $RETCODE_ERROR
}
main() {
local build_target="shell"
local custom_bucket=""
- while getopts "A:B:C:G:R:b:km" o; do
+ while getopts "A:B:C:G:R:b:kmt:" o; do
case "${o}" in
A) KERNEL_ARCH=${OPTARG} ;;
B) BUILD_ID=${OPTARG} ;;
@@ -302,6 +303,7 @@
b) BOARD=${OPTARG} ;;
k) build_target="kernel" ;;
m) build_target="module" ;;
+ t) CROS_TC_VERSION="${OPTARG}" ;;
*) usage ;;
esac
done