# Copyright 2015 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.

# Several boards need to have their config regenerated due to structural
# changes in the overlay.

BOARDS=(
  cyan
  glados
  kunimitsu
  strago
  auron
  jecht
  reef
  chell
  cave
  lars
  sentry
  celes
  edgar
  ultima
  terra
  banon
  reks
  setzer
  umaro
  wizpig
)

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