diff options
author | Stephen Hines <srhines@google.com> | 2017-02-08 10:45:48 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-02-08 10:45:48 +0000 |
commit | 9826fbe38e2bc35fc6c680cc216dcb993b54d2ff (patch) | |
tree | 87b3a32b13c392939d66fa93105896f5df0736a6 /binary_search_tool/cros_pkg/setup.sh | |
parent | baba90fd78c18585d22430dc95c748f96ad0c772 (diff) | |
parent | 271389dd3199539c4474c351942f4d4fa975b81b (diff) | |
download | toolchain-utils-9826fbe38e2bc35fc6c680cc216dcb993b54d2ff.tar.gz |
Merge remote-tracking branch 'aosp/mirror-chromium-master' into initial_import am: 870a8df6fc am: 9c6fa5f9e5 am: c5804ce784
am: 271389dd31
Change-Id: I22e657bc86117da9a6a45329a67a21096736da03
Diffstat (limited to 'binary_search_tool/cros_pkg/setup.sh')
-rwxr-xr-x | binary_search_tool/cros_pkg/setup.sh | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/binary_search_tool/cros_pkg/setup.sh b/binary_search_tool/cros_pkg/setup.sh new file mode 100755 index 00000000..ae31fa82 --- /dev/null +++ b/binary_search_tool/cros_pkg/setup.sh @@ -0,0 +1,123 @@ +#!/bin/bash -u +# +# Copyright 2015 Google Inc. All Rights Reserved. +# +# This script is part of the ChromeOS package binary search triage process. +# It should be the first script called by the user, after the user has set up +# the three necessary build tree directories (see the prerequisites section of +# README.cros_pkg_triage). +# +# This script requires two arguments. The first argument must be the name of +# the board for which this work is being done (e.g. 'daisy', 'lumpy','parrot', +# etc.). The second argument must be the name or IP address of the chromebook +# on which the ChromeOS images will be pushed and tested. +# +# This script sets up a soft link definining /build/${board} to point +# to the working build tree, for the binary search triags process. In +# addition, this script generates two other scripts, common.sh, +# which generates enviroment variables used by the other scripts in the +# package binary search triage process; and ${board}_cleanup.sh, +# which undoes the various changes that this script performs, returning the +# user's environment to its original state. +# + +# Set up basic variables. + +BOARD=$1 +REMOTE=$2 + +GOOD_BUILD=/build/${BOARD}.good +BAD_BUILD=/build/${BOARD}.bad +WORK_BUILD=/build/${BOARD}.work + +# +# Verify that the necessary directories exist. +# + +if [[ ! -d ${GOOD_BUILD} ]] ; then + echo "Error: ${GOOD_BUILD} does not exist." + exit 1 +fi + +if [[ ! -d ${BAD_BUILD} ]] ; then + echo "Error: ${BAD_BUILD} does not exist." + exit 1 +fi + +if [[ ! -d ${WORK_BUILD} ]] ; then + echo "Error: ${WORK_BUILD} does not exist." + exit 1 +fi + +# +# Check to see if /build/${BOARD} already exists and if so, in what state. +# Set appropriate flags & values, in order to be able to undo these changes +# in ${board}_cleanup.sh. If it's a soft link, remove it; if it's a +# read tree, rename it. +# + +build_tree_existed=0 +build_tree_was_soft_link=0 +build_tree_renamed=0 +build_tree_link="" + +if [[ -d "/build/${BOARD}" ]] ; then + build_tree_existed=1 + if [[ -L "/build/${BOARD}" ]] ; then + build_tree_was_soft_link=1 + build_tree_link=`readlink /build/${BOARD}` + sudo rm /build/${BOARD} + else + build_tree_renamed=1 + sudo mv /build/${BOARD} /build/${BOARD}.save + fi +fi + +# Make "working' tree the default board tree (set up soft link) + +sudo ln -s /build/${BOARD}.work /build/${BOARD} + +# +# Create common.sh file, containing appropriate environment variables. +# + +COMMON_FILE="common/common.sh" + +cat <<-EOF > ${COMMON_FILE} + +BISECT_BOARD=${BOARD} +BISECT_REMOTE=${REMOTE} +BISECT_MODE="PACKAGE_MODE" + +GOOD_BUILD=/build/${BOARD}.good +BAD_BUILD=/build/${BOARD}.bad +WORK_BUILD=/build/${BOARD}.work + +EOF + +chmod 755 ${COMMON_FILE} + +# +# Create clean-up script, calling create_cleanup_script.py with +# the appropriate flags. +# + +if [[ ${build_tree_existed} -eq 0 ]] ; then + + python cros_pkg/create_cleanup_script.py --board=${BOARD} \ + --old_tree_missing + +elif [[ ${build_tree_was_soft_link} -eq 0 ]] ; then + + python cros_pkg/create_cleanup_script.py --board=${BOARD} \ + --renamed_tree + +else + + python cros_pkg/create_cleanup_script.py --board=${BOARD} \ + --old_link="'${build_tree_link}'" +fi + +chmod 755 cros_pkg/${BOARD}_cleanup.sh + +exit 0 |