diff options
Diffstat (limited to 'app-eselect/eselect-python/eselect-python-99999999.ebuild')
-rw-r--r-- | app-eselect/eselect-python/eselect-python-99999999.ebuild | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/app-eselect/eselect-python/eselect-python-99999999.ebuild b/app-eselect/eselect-python/eselect-python-99999999.ebuild index 9968e7fac7c4..86e9a3cf2af7 100644 --- a/app-eselect/eselect-python/eselect-python-99999999.ebuild +++ b/app-eselect/eselect-python/eselect-python-99999999.ebuild @@ -40,14 +40,39 @@ src_install() { done } +pkg_preinst() { + local py + + # Copy python[23] selection from the old format (symlink) + for py in 2 3; do + # default to none + declare -g "PREV_PYTHON${py}"= + + if [[ -L ${EROOT}/usr/bin/python${py} ]]; then + local target=$(readlink "${EROOT}/usr/bin/python${py}") + + # check if it's actually old eselect symlink + if [[ ${target} == python?.? ]]; then + declare -g "PREV_PYTHON${py}=${target}" + fi + fi + done +} + pkg_postinst() { + local py + if has_version 'dev-lang/python'; then eselect python update --if-unset fi - if has_version '=dev-lang/python-2*'; then - eselect python update --python2 --if-unset - fi - if has_version '=dev-lang/python-3*'; then - eselect python update --python3 --if-unset - fi + + for py in 2 3; do + local pyvar=PREV_PYTHON${py} + if [[ -n ${!pyvar} ]]; then + einfo "Setting Python${py} to ${!pyvar}" + eselect python set "--python${py}" "${!pyvar}" + elif has_version "=dev-lang/python-${py}*"; then + eselect python update "--python${py}" --if-unset + fi + done } |