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

# crossdev generates the chroot's layout.conf file, which lists overlays
# to be used while emerging packages into the chroot (for instance, toolchains).
# In order to add eclass-overlay to that overlay list, we need to patch
# crossdev.

# Add the extra overlay just for now.
conf='/usr/local/portage/crossdev/metadata/layout.conf'
if ! grep -qs '^masters =.*eclass-overlay' "${conf}"; then
  sudo sed -i \
    -e '/^masters =/s:$: eclass-overlay:' \
    "${conf}"
fi

if ! portageq has_version / '>=sys-devel/crossdev-20150602'; then
  sudo emerge -1ug sys-devel/crossdev
fi
