OLD | NEW |
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 CrOS utilities. Inside the chroot this file is installed in | 9 # Load common CrOS utilities. Inside the chroot this file is installed in |
10 # /usr/lib/crosutils. Outside the chroot we find it relative to the scripts | 10 # /usr/lib/crosutils. Outside the chroot we find it relative to the scripts |
(...skipping 10 matching lines...) Expand all Loading... |
21 if [ -z "${COMMON_SH}" ] ; then | 21 if [ -z "${COMMON_SH}" ] ; then |
22 echo "common.sh not found in search path (${common_paths})" | 22 echo "common.sh not found in search path (${common_paths})" |
23 exit 1 | 23 exit 1 |
24 fi | 24 fi |
25 | 25 |
26 . "${COMMON_SH}" | 26 . "${COMMON_SH}" |
27 | 27 |
28 get_default_board | 28 get_default_board |
29 | 29 |
30 # Flags | 30 # Flags |
| 31 DEFINE_boolean all_boards "${FLAGS_FALSE}" \ |
| 32 "Return paths to overlays for all boards. (Default: false)" |
31 DEFINE_string board "$DEFAULT_BOARD" "The name of the board to set up." | 33 DEFINE_string board "$DEFAULT_BOARD" "The name of the board to set up." |
32 DEFINE_string board_overlay "" "Location of the board overlay." | 34 DEFINE_string board_overlay "" "Location of the board overlay." |
33 DEFINE_boolean primary_only ${FLAGS_FALSE} \ | 35 DEFINE_boolean primary_only ${FLAGS_FALSE} \ |
34 "Only return the path to the board's primary overlay. (Default: false)" | 36 "Only return the path to the board's primary overlay. (Default: false)" |
| 37 DEFINE_boolean private ${FLAGS_TRUE} \ |
| 38 "Include private overlays. (Default: true)" |
| 39 DEFINE_boolean public ${FLAGS_TRUE} \ |
| 40 "Include public overlays. (Default: true)" |
35 DEFINE_string variant "" "Board variant." | 41 DEFINE_string variant "" "Board variant." |
36 | 42 |
37 # Parse command line flags | 43 # Parse command line flags |
38 FLAGS "$@" || exit 1 | 44 FLAGS "$@" || exit 1 |
39 eval set -- "${FLAGS_ARGV}" | 45 eval set -- "${FLAGS_ARGV}" |
40 | 46 |
41 # Only now can we die on error. shflags functions leak non-zero error codes, | 47 # Only now can we die on error. shflags functions leak non-zero error codes, |
42 # so will die prematurely if 'set -e' is specified before now. | 48 # so will die prematurely if 'set -e' is specified before now. |
43 set -e | 49 set -e |
44 | 50 |
| 51 public() { [ "$FLAGS_public" = "$FLAGS_TRUE" ]; } |
| 52 private() { [ "$FLAGS_private" = "$FLAGS_TRUE" ]; } |
| 53 |
| 54 if [ "$FLAGS_all_boards" = "$FLAGS_TRUE" ] ; then |
| 55 overlays= |
| 56 public && overlays="$overlays ${SRC_ROOT}/overlays/*overlay*" |
| 57 private && overlays="$overlays ${SRC_ROOT}/private-overlays/*overlay*" |
| 58 for overlay in $overlays ; do |
| 59 if [ -d "$overlay" ] ; then |
| 60 echo $overlay |
| 61 fi |
| 62 done |
| 63 exit 0 |
| 64 fi |
| 65 |
45 if [ -z "$FLAGS_board" ] ; then | 66 if [ -z "$FLAGS_board" ] ; then |
46 error "--board required." | 67 error "--board required." |
47 exit 1 | 68 exit 1 |
48 fi | 69 fi |
49 | 70 |
50 if [[ $FLAGS_board =~ [_\ ] ]] ; then | 71 if [[ $FLAGS_board =~ [_\ ] ]] ; then |
51 error "--board name must not contain an underscore (_) or a space ( )." | 72 error "--board name must not contain an underscore (_) or a space ( )." |
52 exit 1 | 73 exit 1 |
53 fi | 74 fi |
54 | 75 |
(...skipping 24 matching lines...) Expand all Loading... |
79 return 0 | 100 return 0 |
80 } | 101 } |
81 | 102 |
82 BOARD_OVERLAY="${SRC_ROOT}/overlays/overlay-${FLAGS_board}" | 103 BOARD_OVERLAY="${SRC_ROOT}/overlays/overlay-${FLAGS_board}" |
83 PRIVATE_OVERLAY_NAME="overlay-${FLAGS_board}-private" | 104 PRIVATE_OVERLAY_NAME="overlay-${FLAGS_board}-private" |
84 PRIVATE_BOARD_OVERLAY="${SRC_ROOT}/private-overlays/${PRIVATE_OVERLAY_NAME}" | 105 PRIVATE_BOARD_OVERLAY="${SRC_ROOT}/private-overlays/${PRIVATE_OVERLAY_NAME}" |
85 | 106 |
86 # | 107 # |
87 # Identify the primary board overlay or die. | 108 # Identify the primary board overlay or die. |
88 # | 109 # |
89 if is_primary_overlay ${BOARD_OVERLAY}; then | 110 if public && is_primary_overlay ${BOARD_OVERLAY}; then |
90 PRIMARY_OVERLAY="${BOARD_OVERLAY}" | 111 PRIMARY_OVERLAY="${BOARD_OVERLAY}" |
91 elif is_primary_overlay "${PRIVATE_BOARD_OVERLAY}"; then | 112 elif private && is_primary_overlay "${PRIVATE_BOARD_OVERLAY}"; then |
92 PRIMARY_OVERLAY="${PRIVATE_BOARD_OVERLAY}" | 113 PRIMARY_OVERLAY="${PRIVATE_BOARD_OVERLAY}" |
93 fi | 114 fi |
94 if [ ! -n "${PRIMARY_OVERLAY}" ]; then | 115 if [ ! -n "${PRIMARY_OVERLAY}" ]; then |
95 error "There is no primary board overlay for ${FLAGS_board}" | 116 error "There is no primary board overlay for ${FLAGS_board}" |
96 exit 1 | 117 exit 1 |
97 fi | 118 fi |
98 | 119 |
99 # | 120 # |
100 # If only the primary overlay is needed, provide it and exit. | 121 # If only the primary overlay is needed, provide it and exit. |
101 # | 122 # |
102 if [ "${FLAGS_primary_only}" -eq "${FLAGS_TRUE}" ]; then | 123 if [ "${FLAGS_primary_only}" -eq "${FLAGS_TRUE}" ]; then |
103 echo "${PRIMARY_OVERLAY}" | 124 echo "${PRIMARY_OVERLAY}" |
104 exit 0 | 125 exit 0 |
105 fi | 126 fi |
106 | 127 |
107 # | 128 # |
108 # Check for chromeos-overlay. | 129 # Check for chromeos-overlay. |
109 # | 130 # |
110 CHROMEOS_OVERLAY="${SRC_ROOT}/private-overlays/chromeos-overlay" | 131 CHROMEOS_OVERLAY="${SRC_ROOT}/private-overlays/chromeos-overlay" |
111 | 132 |
112 if [ -d "${CHROMEOS_OVERLAY}" ]; then | 133 if private && [ -d "${CHROMEOS_OVERLAY}" ]; then |
113 echo "${CHROMEOS_OVERLAY}" | 134 echo "${CHROMEOS_OVERLAY}" |
114 fi | 135 fi |
115 | 136 |
116 # | 137 # |
117 # Check if there are any public board overlays. | 138 # Check if there are any public board overlays. |
118 # | 139 # |
119 if [ -d "${BOARD_OVERLAY}" ]; then | 140 if public && [ -d "${BOARD_OVERLAY}" ]; then |
120 echo "${BOARD_OVERLAY}" | 141 echo "${BOARD_OVERLAY}" |
121 | 142 |
122 # | 143 # |
123 # Add the public variant overlay if it exists. | 144 # Add the public variant overlay if it exists. |
124 # | 145 # |
125 if [ -n "$FLAGS_variant" ] ; then | 146 if [ -n "$FLAGS_variant" ] ; then |
126 if [ -d "$VARIANT_OVERLAY" ] ; then | 147 if [ -d "$VARIANT_OVERLAY" ] ; then |
127 echo "${VARIANT_OVERLAY}" | 148 echo "${VARIANT_OVERLAY}" |
128 fi | 149 fi |
129 fi | 150 fi |
130 fi | 151 fi |
131 | 152 |
132 # | 153 # |
133 # Add any private overlays and private variant overlays for this board. | 154 # Add any private overlays and private variant overlays for this board. |
134 # | 155 # |
135 if [ -d "${SRC_ROOT}/private-overlays" ] ; then | 156 if private && [ -d "${SRC_ROOT}/private-overlays" ] ; then |
136 OVERLAY_NAME="overlay-${FLAGS_board}-private" | 157 OVERLAY_NAME="overlay-${FLAGS_board}-private" |
137 PRIVATE_OVERLAY="${SRC_ROOT}/private-overlays/${OVERLAY_NAME}" | 158 PRIVATE_OVERLAY="${SRC_ROOT}/private-overlays/${OVERLAY_NAME}" |
138 | 159 |
139 if [ -d "${PRIVATE_OVERLAY}" ] ; then | 160 if [ -d "${PRIVATE_OVERLAY}" ] ; then |
140 echo "${PRIVATE_OVERLAY}" | 161 echo "${PRIVATE_OVERLAY}" |
141 fi | 162 fi |
142 | 163 |
143 # | 164 # |
144 # Add the private variant overlay if it exists. | 165 # Add the private variant overlay if it exists. |
145 # | 166 # |
146 if [ -n "$FLAGS_variant" ] ; then | 167 if [ -n "$FLAGS_variant" ] ; then |
147 if [ -d "${PRIVATE_VARIANT_OVERLAY}" ] ; then | 168 if [ -d "${PRIVATE_VARIANT_OVERLAY}" ] ; then |
148 echo "${PRIVATE_VARIANT_OVERLAY}" | 169 echo "${PRIVATE_VARIANT_OVERLAY}" |
149 fi | 170 fi |
150 fi | 171 fi |
151 fi | 172 fi |
152 | 173 |
153 # | 174 # |
154 # Finally, add in any user requested board overlays. | 175 # Finally, add in any user requested board overlays. |
155 # | 176 # |
156 if [ -d "${FLAGS_board_overlay}" ] ; then | 177 if [ -d "${FLAGS_board_overlay}" ] ; then |
157 echo "${FLAGS_board_overlay}" | 178 echo "${FLAGS_board_overlay}" |
158 fi | 179 fi |
OLD | NEW |