# Copyright (c) 2012 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.

# Move from chromeos-base/kernel-headers to sys-kernel/linux-headers.

opkg="chromeos-base/kernel-headers"
npkg="sys-kernel/linux-headers"

export CLEAN_DELAY=0

update() {
  local root=$1 board=$2 emerge

  if [[ -z ${board} ]]; then
    board="root"
    emerge="sudo -E emerge"
  else
    emerge="emerge-${board}"
  fi

  if portageq has_version ${root} ${opkg}; then
    info "Migrating ${board} from ${opkg} to ${npkg}"
    ${emerge} -Cq ${opkg}
  fi
  if ! portageq has_version ${root} ${npkg}; then
    ${emerge} -1gq ${npkg}
  fi
}

update / &

for board_root in /build/*; do
  board=${board_root##*/}
  update ${board_root} ${board} &
done

wait
