commit: 460af21306dcef36204adfa5098b21f6bcbd2379
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 17 20:32:36 2015 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 17 20:32:36 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=460af213
app-eselect/eselect-python: Preserve previous python[23] selection
.../eselect-python/eselect-python-20151117.ebuild | 37 ++++++++++++++++++----
.../eselect-python/eselect-python-99999999.ebuild | 37 ++++++++++++++++++----
2 files changed, 62 insertions(+), 12 deletions(-)
diff --git a/app-eselect/eselect-python/eselect-python-20151117.ebuild
b/app-eselect/eselect-python/eselect-python-20151117.ebuild
index 9968e7f..86e9a3c 100644
--- a/app-eselect/eselect-python/eselect-python-20151117.ebuild
+++ b/app-eselect/eselect-python/eselect-python-20151117.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
}
diff --git a/app-eselect/eselect-python/eselect-python-99999999.ebuild
b/app-eselect/eselect-python/eselect-python-99999999.ebuild
index 9968e7f..86e9a3c 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
}