commit: e244f5dc8742446047c0292fe224c422577a8afa Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Thu Feb 4 21:52:51 2016 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Thu Feb 4 21:52:51 2016 +0000 URL: https://gitweb.gentoo.org/proj/eselect-python.git/commit/?id=e244f5dc
big cleanup python.eselect.in | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/python.eselect.in b/python.eselect.in index d1e2836..2680d69 100644 --- a/python.eselect.in +++ b/python.eselect.in @@ -9,7 +9,7 @@ VERSION=20160202 CONFIG_PATH="${EROOT%/}/etc/python-exec/python-exec.conf" ENV_D_PATH="${EROOT%/}/etc/env.d" INTERPRETER_DIR="${EROOT%/}/usr/bin" -MAN_PATH="${EROOT%/}/usr/share/man/man1/" +MAN_PATH="${EROOT%/}/usr/share/man/man1" # Get list of all installed Python interpreters, in lexical order. # $1 can be --pyN to filter results to pythonN.?. @@ -74,6 +74,7 @@ get_all_pythons() { local targets=( $(get_installed_pythons "${@}") ) local preferred=( $(get_preferred_pythons "${@}") ) local disabled=( $(get_disabled_pythons "${@}") ) + local i # preferred first for i in "${preferred[@]}"; do @@ -104,25 +105,23 @@ write_preferences() { # Set a man page symlink set_man_symlink() { - local target="${1}" x extension + local target=${1} x suffix - rm -f "${MAN_PATH}"python.1{,.gz,.bz2,.lzma,.xz,.lz} + rm -f "${MAN_PATH}"/python.1{,.gz,.bz2,.lzma,.xz,.lz} || die - for x in ".1" ".1.bz2" ".1.gz" ".1.lzma" ".1.xz" ".1.lz"; do - if [[ -e "${MAN_PATH}${target}${x}" ]]; then - extension="${x}" + for x in .1{,.gz,.bz2,.lzma,.xz,.lz}; do + if [[ -e "${MAN_PATH}/${target}${x}" ]]; then + suffix=${x} break fi done - if [[ -z "${extension}" ]]; then + if [[ ! ${suffix} ]]; then echo "Couldn't find a man page for ${target}; skipping." 1>&2 return 1 fi - pushd "${MAN_PATH}" 1> /dev/null - ln -nfs "${target}${extension}" "python${extension}" - popd 1> /dev/null + ln -nfs "${target}${extension}" "${MAN_PATH}/python${extension}" || die } # Set OSX framework symlinks @@ -130,22 +129,22 @@ set_osx_framework() { local target=${1} # Files of Mac OS X framework - local framework_dir="${INTERPRETER_PATH%/bin/}/lib/Python.framework" - if [[ -d "${framework_dir}" ]]; then - local version="${target#python}" - pushd "${framework_dir}" 1> /dev/null - rm -f Headers Python Resources - ln -nfs "Versions/${version}/Headers" - ln -nfs "Versions/${version}/Python" - ln -nfs "Versions/${version}/Resources" - popd 1> /dev/null + local framework_dir="${INTERPRETER_DIR%/bin}"/lib/Python.framework + if [[ -d ${framework_dir} ]]; then + local version=${target#python} + pushd "${framework_dir}" >/dev/null || die + rm -f Headers Python Resources || die + ln -nfs "Versions/${version}/Headers" || die + ln -nfs "Versions/${version}/Python" || die + ln -nfs "Versions/${version}/Resources" || die + popd >/dev/null || die fi } # Set the content of /etc/env.d/65python-docs set_python_docs() { - local path target="${1#python}" variable - rm -f "${ENV_D_PATH}/65python-docs" + local path target=${1#python} variable + rm -f "${ENV_D_PATH}/65python-docs" || die if [[ -f ${ENV_D_PATH}/60python-docs-${target} ]]; then variable="PYTHONDOCS_${target//./_}" path="$(. "${ENV_D_PATH}/60python-docs-${target}"; echo "${!variable}")" @@ -169,21 +168,21 @@ post_update() { ### show action ### describe_show() { - echo "Show main active Python interpreter" + echo "Show the most preferred Python interpreter" } describe_show_options() { - echo "--ABI : Show Python ABI in format of PYTHON_ABI variable" - echo "--python2 : Show active Python 2 interpreter" - echo "--python3 : Show active Python 3 interpreter" + echo "--ABI : use PYTHON_ABI variable format (deprecated)" + echo "--python2 : show the preferred version of Python 2" + echo "--python3 : show the preferred version of Python 3" } do_show() { - local ABI filter interpreter - while [[ $# > 0 ]]; do - case "$1" in + local abi filter interpreter + while [[ ${#} -gt 0 ]]; do + case ${1} in --ABI) - ABI=1 + abi=1 ;; --python2|--py2) filter=--py2 @@ -198,7 +197,8 @@ do_show() { shift done - local all_interpreters=( $(get_preferred_pythons ${filter}) ) i + local all_interpreters=( $(get_preferred_pythons ${filter}) ) + local i for i in "${all_interpreters[@]}"; do # skip if not installed [[ -x ${INTERPRETER_DIR}/${i}@EXEEXT@ ]] || continue @@ -206,7 +206,7 @@ do_show() { break done - if [[ "${ABI}" == "1" ]]; then + if [[ ${abi} ]]; then echo "${interpreter#python}" else echo "${interpreter}" @@ -220,14 +220,14 @@ describe_list() { } describe_list_options() { - echo "--python2 : List installed Python 2 interpreters" - echo "--python3 : List installed Python 3 interpreters" + echo "--python2 : list only Python 2 interpreters" + echo "--python3 : list only Python 3 interpreters" } do_list() { local filter - while [[ $# > 0 ]]; do - case "$1" in + while [[ ${#} -gt 0 ]]; do + case ${1} in --python2|--py2) filter=--py2 ;; @@ -260,12 +260,12 @@ do_list() { ### set action ### describe_set() { - echo "Set main active Python interpreter" + echo "Set the preferred Python interpreter" } describe_set_options() { - echo "--python2 : Set active Python 2 interpreter without setting of main active Python interpreter if it is not set to Python 2" - echo "--python3 : Set active Python 3 interpreter without setting of main active Python interpreter if it is not set to Python 3" + echo "--python2 : update preference for Python 2 versions only" + echo "--python3 : update preference for Python 3 versions only" } describe_set_parameters() { @@ -274,8 +274,8 @@ describe_set_parameters() { do_set() { local filter - while [[ $# > 0 ]]; do - case "$1" in + while [[ ${#} -gt 0 ]]; do + case ${1} in --python2|--py2) filter=--py2 ;; @@ -289,14 +289,14 @@ do_set() { shift done - [[ $# -eq 1 ]] || die "Usage: eselect python set <interpreter>" + [[ ${#} -eq 1 ]] || die "Usage: eselect python set <interpreter>" local target=${1} local targets=( $(get_all_pythons ${filter}) ) if is_number "${target}" \ && [[ ${target} -ge 1 && ${target} -le ${#targets[@]} ]] then - target=${targets[$((${target} - 1))]} + target=${targets[target-1]} fi has "${target}" "${targets[@]}" || die "Invalid target: ${target}" @@ -333,16 +333,16 @@ describe_update() { } describe_update_options() { - echo "--if-unset : Do not override existing implementation" - echo "--ignore SLOT : Ignore SLOT when setting symlinks" - echo "--python2 : Set active Python 2 interpreter without setting of main active Python interpreter if it is not set to Python 2" - echo "--python3 : Set active Python 3 interpreter without setting of main active Python interpreter if it is not set to Python 3" + echo "--if-unset : do not alter preferences unless there is no valid preference set" + echo "--ignore SLOT : ignore specified Python slots" + echo "--python2 : update only Python 2 preferences" + echo "--python3 : update only Python 3 preferences" } do_update() { local if_unset ignored_slots=() filter - while [[ $# > 0 ]]; do - case "$1" in + while [[ ${#} -gt 0 ]]; do + case ${1} in --if-unset) if_unset=1 ;;