| Index: bin/cros_overlay_list
|
| diff --git a/bin/cros_overlay_list b/bin/cros_overlay_list
|
| index 1867da25a6761231fa4c09306f57dc1d0b31ebf4..2cf911a858141888a84037eadf03bdf69e79efe4 100755
|
| --- a/bin/cros_overlay_list
|
| +++ b/bin/cros_overlay_list
|
| @@ -15,6 +15,8 @@ get_default_board
|
| # Flags
|
| DEFINE_string board "$DEFAULT_BOARD" "The name of the board to set up."
|
| DEFINE_string board_overlay "" "Location of the board overlay."
|
| +DEFINE_boolean primary_only ${FLAGS_FALSE} \
|
| + "Only return the path to the board's primary overlay. (Default: false)"
|
| DEFINE_string variant "" "Board variant."
|
|
|
| # Parse command line flags
|
| @@ -41,6 +43,53 @@ if [[ $FLAGS_variant =~ [_\ ] ]] ; then
|
| fi
|
|
|
| #
|
| +# Check that the provided variant overlay name is valid.
|
| +#
|
| +if [ -n "$FLAGS_variant" ] ; then
|
| + VARIANT_NAME="overlay-variant-${FLAGS_board}-${FLAGS_variant}"
|
| + VARIANT_OVERLAY="${SRC_ROOT}/overlays/${VARIANT_NAME}"
|
| + PRIVATE_VARIANT_NAME="overlay-variant-${FLAGS_board}-${FLAGS_variant}-private"
|
| + PRIVATE_VARIANT_OVERLAY="${SRC_ROOT}/private-overlays/${PRIVATE_VARIANT_NAME}"
|
| + if [ ! -d "${VARIANT_OVERLAY}" ] && \
|
| + [ ! -d "${PRIVATE_VARIANT_OVERLAY}" ] ; then
|
| + error "There is no variant overlay called '${FLAGS_variant}'"
|
| + exit 1
|
| + fi
|
| +fi
|
| +
|
| +function is_primary_overlay() {
|
| + local directory=$1
|
| + [ -f "${directory}/make.conf" ] || return 1
|
| + [ -f "${directory}/toolchain.conf" ] || return 1
|
| + return 0
|
| +}
|
| +
|
| +BOARD_OVERLAY="${SRC_ROOT}/overlays/overlay-${FLAGS_board}"
|
| +PRIVATE_OVERLAY_NAME="overlay-${FLAGS_board}-private"
|
| +PRIVATE_BOARD_OVERLAY="${SRC_ROOT}/private-overlays/${PRIVATE_OVERLAY_NAME}"
|
| +
|
| +#
|
| +# Identify the primary board overlay or die.
|
| +#
|
| +if is_primary_overlay ${BOARD_OVERLAY}; then
|
| + PRIMARY_OVERLAY="${BOARD_OVERLAY}"
|
| +elif is_primary_overlay "${PRIVATE_BOARD_OVERLAY}"; then
|
| + PRIMARY_OVERLAY="${PRIVATE_BOARD_OVERLAY}"
|
| +fi
|
| +if [ ! -n "${PRIMARY_OVERLAY}" ]; then
|
| + error "There is no primary board overlay for ${FLAGS_board}"
|
| + exit 1
|
| +fi
|
| +
|
| +#
|
| +# If only the primary overlay is needed, provide it and exit.
|
| +#
|
| +if [ "${FLAGS_primary_only}" -eq "${FLAGS_TRUE}" ]; then
|
| + echo "${PRIMARY_OVERLAY}"
|
| + exit 0
|
| +fi
|
| +
|
| +#
|
| # Check for chromeos-overlay.
|
| #
|
| CHROMEOS_OVERLAY="${SRC_ROOT}/private-overlays/chromeos-overlay"
|
| @@ -50,50 +99,38 @@ if [ -d "${CHROMEOS_OVERLAY}" ]; then
|
| fi
|
|
|
| #
|
| -# Check if there are any board overlays. There should be at least a top
|
| -# level board specific overlay.
|
| +# Check if there are any public board overlays.
|
| #
|
| -PRIMARY_BOARD_OVERLAY="${SRC_ROOT}/overlays/overlay-${FLAGS_board}"
|
| -
|
| -if [ -d "${PRIMARY_BOARD_OVERLAY}" ]; then
|
| - echo "${PRIMARY_BOARD_OVERLAY}"
|
| +if [ -d "${BOARD_OVERLAY}" ]; then
|
| + echo "${BOARD_OVERLAY}"
|
|
|
| #
|
| - # Add the public variant overlay
|
| + # Add the public variant overlay if it exists.
|
| #
|
| if [ -n "$FLAGS_variant" ] ; then
|
| - VARIANT_NAME="overlay-variant-${FLAGS_board}-${FLAGS_variant}"
|
| - VARIANT_OVERLAY="${SRC_ROOT}/overlays/${VARIANT_NAME}"
|
| -
|
| - if [ ! -d "$VARIANT_OVERLAY" ] ; then
|
| - error "Can't find variant overlay directory $VARIANT_OVERLAY"
|
| - exit 1
|
| + if [ -d "$VARIANT_OVERLAY" ] ; then
|
| + echo "${VARIANT_OVERLAY}"
|
| fi
|
| + fi
|
| +fi
|
| +
|
| +#
|
| +# Add any private overlays and private variant overlays for this board.
|
| +#
|
| +if [ -d "${SRC_ROOT}/private-overlays" ] ; then
|
| + OVERLAY_NAME="overlay-${FLAGS_board}-private"
|
| + PRIVATE_OVERLAY="${SRC_ROOT}/private-overlays/${OVERLAY_NAME}"
|
|
|
| - echo "${VARIANT_OVERLAY}"
|
| + if [ -d "${PRIVATE_OVERLAY}" ] ; then
|
| + echo "${PRIVATE_OVERLAY}"
|
| fi
|
|
|
| #
|
| - # Add any private overlays and variant overlays for this board.
|
| + # Add the private variant overlay if it exists.
|
| #
|
| - if [ -d "${SRC_ROOT}/private-overlays" ] ; then
|
| - OVERLAY_NAME="overlay-${FLAGS_board}-private"
|
| - PRIVATE_OVERLAY="${SRC_ROOT}/private-overlays/${OVERLAY_NAME}"
|
| -
|
| - if [ -d "${PRIVATE_OVERLAY}" ] ; then
|
| - echo "${PRIVATE_OVERLAY}"
|
| - fi
|
| -
|
| - #
|
| - # Add the public and private variant overlays
|
| - #
|
| - if [ -n "$FLAGS_variant" ] ; then
|
| - VARIANT_NAME="overlay-variant-${FLAGS_board}-${FLAGS_variant}-private"
|
| - PRIVATE_VARIANT_OVERLAY="${SRC_ROOT}/private-overlays/${VARIANT_NAME}"
|
| -
|
| - if [ -d "${PRIVATE_VARIANT_OVERLAY}" ] ; then
|
| - echo "${PRIVATE_VARIANT_OVERLAY}"
|
| - fi
|
| + if [ -n "$FLAGS_variant" ] ; then
|
| + if [ -d "${PRIVATE_VARIANT_OVERLAY}" ] ; then
|
| + echo "${PRIVATE_VARIANT_OVERLAY}"
|
| fi
|
| fi
|
| fi
|
|
|