cros_update_firmware: Update for new standardized package names

With chromeos-config virtuals removed from the tree, there is now only
four possible bsp package names:

- chromeos-base/chromeos-config-bsp
- chromeos-base/chromeos-config-bsp-private
- chromeos-base/chromeos-config-bsp-baseboard
- chromeos-base/chromeos-config-bsp-baseboard-private

This significantly simplifies the previous detection logic -- we
simply need to `equery which` for each package and append to an
array of packages to workon/emerge.

BUG=b:197038156
TEST=./cros_update_firmware -b strongbad

Change-Id: If323cfeed338b9508247b6779cc09105da62a299
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/3166682
Tested-by: Jack Rosenthal <jrosenth@chromium.org>
Auto-Submit: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Bob Moragues <moragues@chromium.org>
Reviewed-by: Bob Moragues <moragues@chromium.org>
diff --git a/contrib/cros_update_firmware b/contrib/cros_update_firmware
index 60f38d4..633a890 100755
--- a/contrib/cros_update_firmware
+++ b/contrib/cros_update_firmware
@@ -65,9 +65,10 @@
 update_firmware() {
   local board="$1"
   local project="$2"
-  local base ebuild srcuris cfg_bsp_pkg cfg_bsp_baseboard_pkg
-  local current_workon_pkg_list start_pkg result i quiet
-  [[ "$3" == "${FLAGS_TRUE}" ]] && quiet="--quiet-build"
+  local base ebuild srcuris
+  local current_workon_pkg_list start_pkg result i
+  local emerge_flags=()
+  [[ "$3" == "${FLAGS_TRUE}" ]] && emerge_flags+=("--quiet-build")
   local append_srcuris="$4"
 
   set -e
@@ -75,18 +76,17 @@
   # query the current working package
   mapfile -t current_workon_pkg_list < <(cros workon --board="${board}" list)
 
-  # check if chromeos-config-bsp is a virtual package
-  cfg_bsp_pkg="chromeos-config-bsp"
-  equery-"${board}" w chromeos-base/chromeos-config-bsp > /dev/null 2>&1 \
-    || cfg_bsp_pkg="chromeos-config-bsp-${board}-private"
-  # check if chromeos-config-bsp-baseboard is in use
-  cfg_bsp_baseboard_pkg="chromeos-config-bsp-baseboard"
-  equery-"${board}" w chromeos-base/chromeos-config-bsp-baseboard \
-    > /dev/null 2>&1 || cfg_bsp_baseboard_pkg=
+  local config_packages=(chromeos-base/chromeos-config)
+  local suffix
+  for suffix in "" -private -baseboard -baseboard-private; do
+    local pkg="chromeos-base/chromeos-config-bsp${suffix}"
+    if equery-"${board}" which "${pkg}" >/dev/null 2>&1; then
+      config_packages+=("${pkg}")
+    fi
+  done
 
-  start_pkg=("${cfg_bsp_pkg}")
+  start_pkg=("${config_packages[@]}")
   start_pkg+=("chromeos-firmware-${board}")
-  start_pkg+=("${cfg_bsp_baseboard_pkg}")
 
   for i in "${!start_pkg[@]}"; do
     result[i]=0
@@ -115,8 +115,7 @@
     popd > /dev/null
   fi
 
-  "emerge-${board}" -j ${quiet} ${cfg_bsp_baseboard_pkg} "${cfg_bsp_pkg}"
-  "emerge-${board}" ${quiet} chromeos-config
+  "emerge-${board}" -j "${emerge_flags[@]}" "${config_packages[@]}"
 
   # If the append_srcuris and project flags are set, append uris that aren't
   # already in srcuris. Otherwise, overwrite srcuris.
@@ -144,7 +143,7 @@
   # these cache cleanup code.
   rm -rf "${metadata}/cache" "${metadata}/md5-cache" "${edb_cache}"
   "ebuild-${board}" "${ebuild}" manifest
-  "emerge-${board}" -j ${quiet} "chromeos-firmware-${board}"
+  "emerge-${board}" -j "${emerge_flags[@]}" "chromeos-firmware-${board}"
 
   for i in "${!result[@]}"; do
     if [[ "${result[i]}" -eq "0" ]]; then