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

# Drop Python 3.4 from the SDK as we've moved to Python 3.6 everywhere.
# Make sure 3.6 is installed in case this is an old chroot.

echo "Cleaning up Python 3.4 to migrate to 3.6"

EMERGE="$(which parallel_emerge)"
export CLEAN_DELAY=0

# Install python 3.6 if the sdk is out of date.
if ! python3.6 --version >&/dev/null; then
  sudo emerge -ug dev-lang/python:3.6
fi

# Point python3 to the new version.
sudo eselect python update --python3

# Remove python 3.4 from the system.
sudo "${EMERGE}" -Cq dev-lang/python:3.4

# Remove java-config if needed to avoid circular deps.
reinstall_java="false"
if ! python3.6 -c 'import java_config_2' >&/dev/null; then
  reinstall_java="true"
  sudo "${EMERGE}" -Cq dev-java/java-config
fi

# Upgrade portage itself finally.
sudo "${EMERGE}" -Ugqv sys-apps/portage

# Reinstall java-config in case we purged it.
if [[ "${reinstall_java}" == "true" ]]; then
  sudo "${EMERGE}" -ugqv dev-java/java-config
fi
