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

# Force regeneration of every board configuration in order to clean out
# old binhosts. crbug.com/965244

for board_root in /build/*; do
  board_name=${board_root##*/}
  if [[ -e "/build/${board_name}/etc/make.conf.board" ]]; then
    /mnt/host/source/chromite/bin/setup_board \
        --board=${board_name} \
        --skip-board-pkg-init \
        --skip-chroot-upgrade \
        --regen-configs &
  fi
done
wait
