summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Polatel <hawking@gentoo.org>2008-06-20 19:42:36 +0000
committerAli Polatel <hawking@gentoo.org>2008-06-20 19:42:36 +0000
commitf75e3696d324102b4384afd31fdb53b743a716ef (patch)
treee05075363763dd01c03093c4b3581616c1e484fc
parentAdd lzma to the list of suffixes for man pages. (diff)
downloadeselect-python-f75e3696d324102b4384afd31fdb53b743a716ef.tar.gz
eselect-python-f75e3696d324102b4384afd31fdb53b743a716ef.tar.bz2
eselect-python-f75e3696d324102b4384afd31fdb53b743a716ef.zip
Implemented --ignore option for update, so it can be used in ebuild's prerm safely.
-rw-r--r--python.eselect25
1 files changed, 21 insertions, 4 deletions
diff --git a/python.eselect b/python.eselect
index 4fc317b..c0da2a4 100644
--- a/python.eselect
+++ b/python.eselect
@@ -139,18 +139,35 @@ describe_update() {
}
describe_update_options() {
- echo "--if-unset : Do not override existing implementation"
+ echo "--if-unset : Do not override existing implementation"
+ echo "--ignore SLOT : Ignore SLOT when setting symlinks"
}
do_update() {
- [[ -z "${1}" ]] || ( [[ -z "${2}" ]] && [[ "${1}" == "--if-unset" ]] ) || \
- die -q "Usage error"
+ local if_unset=false ignored_slot=
+ while [[ $# > 0 ]]; do
+ case $1 in
+ --if-unset)
+ if_unset=true
+ ;;
+ --ignore)
+ ignored_slot=${2}
+ shift;;
+ --*)
+ die -q "Unrecognized option '$1'"
+ ;;
+ esac
+ shift
+ done
if [[ -L "${ROOT}/usr/bin/python" ]]; then
- [[ ${1} == "--if-unset" ]] && return
+ ${if_unset} && return
fi
local targets=( $(cd "${INTERPRETER_PATH}"; ls python?.?|sort -r) ) target
+ if [[ -n "${ignored_slot}" ]]; then
+ targets=( ${targets[@]/python${ignored_slot}/} )
+ fi
target=${targets[0]}
echo "Switching to ${target}"
do_set ${target}