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

# We moved a lot of files to the project-freon overlay. Make sure we
# regen the board setup for each freon board.

BOARDS=(
  veyron
  veyron_brain
  veyron_danger
  veyron_gus
  veyron_jaq
  veyron_jerry
  veyron_mighty
  veyron_minnie
  veyron_pinky
  veyron_remy
  veyron_rialto
  veyron_speedy
)

for b in "${BOARDS[@]}"; do
  if [[ -d /build/${b} ]]; then
    /mnt/host/source/chromite/bin/setup_board \
      --board=${b} \
      --skip-chroot-upgrade \
      --regen-configs
  fi
done
