# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# With the new overlay structure we must regenerate the board setup. This
# enables the chipset-bdw and baseboard-auron overlays to go into effect.

BOARDS=(
  auron
  auron_paine
  auron_yuna
)

for b in "${BOARDS[@]}"; do
  if [[ -d /build/${b} ]]; then
    ~/trunk/src/scripts/setup_board \
      --board=${b} \
      --skip_chroot_upgrade \
      --regen_configs
  fi
done
