diff options
-rw-r--r-- | src/php.eselect.in | 62 |
1 files changed, 17 insertions, 45 deletions
diff --git a/src/php.eselect.in b/src/php.eselect.in index 6c1f803..fff7784 100644 --- a/src/php.eselect.in +++ b/src/php.eselect.in @@ -195,33 +195,6 @@ find_targets_phpdbg() { done | @SORT@ | @UNIQ@ } -get_active_cli() { - # See get_active_apache2() for an explanation of the sed call. - local target=$(canonicalise "$(sapi_active_link_path cli)") - local ver="s:.*/usr/.*/\(php[0-9]\.[0-9][0-9]*\)/bin/php:\1:p" - [[ -a "${target}" ]] && echo "${target}" | @SED@ -ne "${ver}" -} - -get_active_cgi() { - # See get_active_apache2() for an explanation of the sed call. - local target=$(canonicalise "$(sapi_active_link_path cgi)") - local ver="s:.*/usr/.*/\(php[0-9]\.[0-9][0-9]*\)/bin/php-cgi:\1:p" - [[ -a "${target}" ]] && echo "${target}" | @SED@ -ne "${ver}" -} - -get_active_fpm() { - # See get_active_apache2() for an explanation of the sed call. - local target=$(canonicalise "$(sapi_active_link_path fpm)") - local ver="s:.*/usr/.*/\(php[0-9]\.[0-9][0-9]*\)/bin/php-fpm:\1:p" - [[ -a "${target}" ]] && echo "${target}" | @SED@ -ne "${ver}" -} - -get_active_phpdbg() { - # See get_active_apache2() for an explanation of the sed call. - local target=$(canonicalise "$(sapi_active_link_path dbg)") - local ver="s:.*/usr/.*/\(php[0-9]\.[0-9][0-9]*\)/bin/phpdbg:\1:p" - [[ -a "${target}" ]] && echo "${target}" | @SED@ -ne "${ver}" -} # Find the active (selected) version of the apache2 module. Used to # decorate the output of the `eselect php list apache2` command. @@ -235,21 +208,20 @@ get_active_phpdbg() { # The "display name" of the active apache2 module. For example, # "php5.6" or "php7.0". # -get_active_apache2() { - local active_symlink target ver - - # The symlink to our active module. - active_symlink="$(sapi_active_link_path apache2)" - - # This sed expression finds the "display name" of the PHP version - # corresponding to a copy of libphp. For example, it parses the - # string "php5.6" out of "/usr/lib64/php5.6/apache2/libphp5.so". - ver="s:.*/usr/.*/\(php[0-9]\.[0-9]\)/apache2/libphp[57].so:\1:p" +get_sapi_active_target() { + local sapi="${1}" + local active_symlink=$(sapi_active_link_path "${sapi}") if [[ -L "${active_symlink}" ]] ; then - target=$(canonicalise "${active_symlink}") - if [[ -a "${target}" ]] ; then - echo "${target}" | @SED@ -ne "${ver}" + local active_file=$(canonicalise "${active_symlink}") + if [[ -a "${active_file}" ]] ; then + # This sed command (regular expression) finds a target name + # contained in a filesystem path. For example, it parses + # "php5.6" from "/usr/lib64/php5.6/apache2/libphp5.so". + # The curly braces are an attempt to avoid '+' which is + # a GNU extension. + local sed_cmd='s:.*/\(php[0-9]\.[0-9]\{1,\}\)/.*:\1:p' + echo "${active_file}" | @SED@ -ne "${sed_cmd}" fi fi } @@ -305,7 +277,7 @@ list_apache2() { local targets local a targets=( $(find_targets_apache2) ) - a=$(get_active_apache2) + a=$(get_sapi_active_target apache2) for (( i = 0; i < ${#targets[@]}; i++ )) ; do if [[ $a == ${targets[i]} ]] ; then targets[i]=$(highlight_marker "${targets[i]}") @@ -318,7 +290,7 @@ list_cli() { local targets local a targets=( $(find_targets_cli) ) - a=$(get_active_cli) + a=$(get_sapi_active_target cli) for (( i = 0; i < ${#targets[@]}; i++ )) ; do if [[ $a == ${targets[i]} ]] ; then targets[i]=$(highlight_marker "${targets[i]}") @@ -331,7 +303,7 @@ list_cgi() { local targets local a targets=( $(find_targets_cgi) ) - a=$(get_active_cgi) + a=$(get_sapi_active_target cgi) for (( i = 0; i < ${#targets[@]}; i++ )) ; do if [[ $a == ${targets[i]} ]] ; then targets[i]=$(highlight_marker "${targets[i]}") @@ -344,7 +316,7 @@ list_fpm() { local targets local a targets=( $(find_targets_fpm) ) - a=$(get_active_fpm) + a=$(get_sapi_active_target fpm) for (( i = 0; i < ${#targets[@]}; i++ )) ; do if [[ $a == ${targets[i]} ]] ; then targets[i]=$(highlight_marker "${targets[i]}") @@ -357,7 +329,7 @@ list_phpdbg() { local targets local a targets=( $(find_targets_phpdbg) ) - a=$(get_active_phpdbg) + a=$(get_sapi_active_target dbg) for (( i = 0; i < ${#targets[@]}; i++ )) ; do if [[ $a == ${targets[i]} ]] ; then targets[i]=$(highlight_marker "${targets[i]}") |