Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Unified Diff: bin/cros_overlay_list

Issue 3622003: Added support for boards with only private overlays. (crosutils) (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/crosutils.git
Patch Set: Removed requirement for a public variant overlay if a variant is specified Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | parallel_emerge » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « no previous file | parallel_emerge » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698