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

Side by Side 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 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | parallel_emerge » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # This script generates the list of board overlays and variants. 7 # This script generates the list of board overlays and variants.
8 8
9 # Load common constants. This should be the first executable line. 9 # Load common constants. This should be the first executable line.
10 # The path to common.sh should be relative to your script's location. 10 # The path to common.sh should be relative to your script's location.
11 . "$(dirname "$0")/../common.sh" 11 . "$(dirname "$0")/../common.sh"
12 12
13 get_default_board 13 get_default_board
14 14
15 # Flags 15 # Flags
16 DEFINE_string board "$DEFAULT_BOARD" "The name of the board to set up." 16 DEFINE_string board "$DEFAULT_BOARD" "The name of the board to set up."
17 DEFINE_string board_overlay "" "Location of the board overlay." 17 DEFINE_string board_overlay "" "Location of the board overlay."
18 DEFINE_boolean primary_only ${FLAGS_FALSE} \
19 "Only return the path to the board's primary overlay. (Default: false)"
18 DEFINE_string variant "" "Board variant." 20 DEFINE_string variant "" "Board variant."
19 21
20 # Parse command line flags 22 # Parse command line flags
21 FLAGS "$@" || exit 1 23 FLAGS "$@" || exit 1
22 eval set -- "${FLAGS_ARGV}" 24 eval set -- "${FLAGS_ARGV}"
23 25
24 # Only now can we die on error. shflags functions leak non-zero error codes, 26 # Only now can we die on error. shflags functions leak non-zero error codes,
25 # so will die prematurely if 'set -e' is specified before now. 27 # so will die prematurely if 'set -e' is specified before now.
26 set -e 28 set -e
27 29
28 if [ -z "$FLAGS_board" ] ; then 30 if [ -z "$FLAGS_board" ] ; then
29 error "--board required." 31 error "--board required."
30 exit 1 32 exit 1
31 fi 33 fi
32 34
33 if [[ $FLAGS_board =~ [_\ ] ]] ; then 35 if [[ $FLAGS_board =~ [_\ ] ]] ; then
34 error "--board name must not contain an underscore (_) or a space ( )." 36 error "--board name must not contain an underscore (_) or a space ( )."
35 exit 1 37 exit 1
36 fi 38 fi
37 39
38 if [[ $FLAGS_variant =~ [_\ ] ]] ; then 40 if [[ $FLAGS_variant =~ [_\ ] ]] ; then
39 error "--variant name must not contain an underscore (_) or a space ( )." 41 error "--variant name must not contain an underscore (_) or a space ( )."
40 exit 1 42 exit 1
41 fi 43 fi
42 44
43 # 45 #
46 # Check that the provided variant overlay name is valid.
47 #
48 if [ -n "$FLAGS_variant" ] ; then
49 VARIANT_NAME="overlay-variant-${FLAGS_board}-${FLAGS_variant}"
50 VARIANT_OVERLAY="${SRC_ROOT}/overlays/${VARIANT_NAME}"
51 PRIVATE_VARIANT_NAME="overlay-variant-${FLAGS_board}-${FLAGS_variant}-private"
52 PRIVATE_VARIANT_OVERLAY="${SRC_ROOT}/private-overlays/${PRIVATE_VARIANT_NAME}"
53 if [ ! -d "${VARIANT_OVERLAY}" ] && \
54 [ ! -d "${PRIVATE_VARIANT_OVERLAY}" ] ; then
55 error "There is no variant overlay called '${FLAGS_variant}'"
56 exit 1
57 fi
58 fi
59
60 function is_primary_overlay() {
61 local directory=$1
62 [ -f "${directory}/make.conf" ] || return 1
63 [ -f "${directory}/toolchain.conf" ] || return 1
64 return 0
65 }
66
67 BOARD_OVERLAY="${SRC_ROOT}/overlays/overlay-${FLAGS_board}"
68 PRIVATE_OVERLAY_NAME="overlay-${FLAGS_board}-private"
69 PRIVATE_BOARD_OVERLAY="${SRC_ROOT}/private-overlays/${PRIVATE_OVERLAY_NAME}"
70
71 #
72 # Identify the primary board overlay or die.
73 #
74 if is_primary_overlay ${BOARD_OVERLAY}; then
75 PRIMARY_OVERLAY="${BOARD_OVERLAY}"
76 elif is_primary_overlay "${PRIVATE_BOARD_OVERLAY}"; then
77 PRIMARY_OVERLAY="${PRIVATE_BOARD_OVERLAY}"
78 fi
79 if [ ! -n "${PRIMARY_OVERLAY}" ]; then
80 error "There is no primary board overlay for ${FLAGS_board}"
81 exit 1
82 fi
83
84 #
85 # If only the primary overlay is needed, provide it and exit.
86 #
87 if [ "${FLAGS_primary_only}" -eq "${FLAGS_TRUE}" ]; then
88 echo "${PRIMARY_OVERLAY}"
89 exit 0
90 fi
91
92 #
44 # Check for chromeos-overlay. 93 # Check for chromeos-overlay.
45 # 94 #
46 CHROMEOS_OVERLAY="${SRC_ROOT}/private-overlays/chromeos-overlay" 95 CHROMEOS_OVERLAY="${SRC_ROOT}/private-overlays/chromeos-overlay"
47 96
48 if [ -d "${CHROMEOS_OVERLAY}" ]; then 97 if [ -d "${CHROMEOS_OVERLAY}" ]; then
49 echo "${CHROMEOS_OVERLAY}" 98 echo "${CHROMEOS_OVERLAY}"
50 fi 99 fi
51 100
52 # 101 #
53 # Check if there are any board overlays. There should be at least a top 102 # Check if there are any public board overlays.
54 # level board specific overlay.
55 # 103 #
56 PRIMARY_BOARD_OVERLAY="${SRC_ROOT}/overlays/overlay-${FLAGS_board}" 104 if [ -d "${BOARD_OVERLAY}" ]; then
57 105 echo "${BOARD_OVERLAY}"
58 if [ -d "${PRIMARY_BOARD_OVERLAY}" ]; then
59 echo "${PRIMARY_BOARD_OVERLAY}"
60 106
61 # 107 #
62 # Add the public variant overlay 108 # Add the public variant overlay if it exists.
63 # 109 #
64 if [ -n "$FLAGS_variant" ] ; then 110 if [ -n "$FLAGS_variant" ] ; then
65 VARIANT_NAME="overlay-variant-${FLAGS_board}-${FLAGS_variant}" 111 if [ -d "$VARIANT_OVERLAY" ] ; then
66 VARIANT_OVERLAY="${SRC_ROOT}/overlays/${VARIANT_NAME}" 112 echo "${VARIANT_OVERLAY}"
113 fi
114 fi
115 fi
67 116
68 if [ ! -d "$VARIANT_OVERLAY" ] ; then 117 #
69 error "Can't find variant overlay directory $VARIANT_OVERLAY" 118 # Add any private overlays and private variant overlays for this board.
70 exit 1 119 #
71 fi 120 if [ -d "${SRC_ROOT}/private-overlays" ] ; then
121 OVERLAY_NAME="overlay-${FLAGS_board}-private"
122 PRIVATE_OVERLAY="${SRC_ROOT}/private-overlays/${OVERLAY_NAME}"
72 123
73 echo "${VARIANT_OVERLAY}" 124 if [ -d "${PRIVATE_OVERLAY}" ] ; then
125 echo "${PRIVATE_OVERLAY}"
74 fi 126 fi
75 127
76 # 128 #
77 # Add any private overlays and variant overlays for this board. 129 # Add the private variant overlay if it exists.
78 # 130 #
79 if [ -d "${SRC_ROOT}/private-overlays" ] ; then 131 if [ -n "$FLAGS_variant" ] ; then
80 OVERLAY_NAME="overlay-${FLAGS_board}-private" 132 if [ -d "${PRIVATE_VARIANT_OVERLAY}" ] ; then
81 PRIVATE_OVERLAY="${SRC_ROOT}/private-overlays/${OVERLAY_NAME}" 133 echo "${PRIVATE_VARIANT_OVERLAY}"
82
83 if [ -d "${PRIVATE_OVERLAY}" ] ; then
84 echo "${PRIVATE_OVERLAY}"
85 fi
86
87 #
88 # Add the public and private variant overlays
89 #
90 if [ -n "$FLAGS_variant" ] ; then
91 VARIANT_NAME="overlay-variant-${FLAGS_board}-${FLAGS_variant}-private"
92 PRIVATE_VARIANT_OVERLAY="${SRC_ROOT}/private-overlays/${VARIANT_NAME}"
93
94 if [ -d "${PRIVATE_VARIANT_OVERLAY}" ] ; then
95 echo "${PRIVATE_VARIANT_OVERLAY}"
96 fi
97 fi 134 fi
98 fi 135 fi
99 fi 136 fi
100 137
101 # 138 #
102 # Finally, add in any user requested board overlays. 139 # Finally, add in any user requested board overlays.
103 # 140 #
104 if [ -d "${FLAGS_board_overlay}" ] ; then 141 if [ -d "${FLAGS_board_overlay}" ] ; then
105 echo "${FLAGS_board_overlay}" 142 echo "${FLAGS_board_overlay}"
106 fi 143 fi
OLDNEW
« 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