diff options
Diffstat (limited to 'dev-db')
-rw-r--r-- | dev-db/mariadb/mariadb-10.2.40.ebuild | 25 | ||||
-rw-r--r-- | dev-db/mariadb/mariadb-10.3.31.ebuild | 25 | ||||
-rw-r--r-- | dev-db/mariadb/mariadb-10.4.21.ebuild | 25 | ||||
-rw-r--r-- | dev-db/mariadb/mariadb-10.5.12.ebuild | 25 |
4 files changed, 80 insertions, 20 deletions
diff --git a/dev-db/mariadb/mariadb-10.2.40.ebuild b/dev-db/mariadb/mariadb-10.2.40.ebuild index f3462ac3ca61..a5fc6881ea9c 100644 --- a/dev-db/mariadb/mariadb-10.2.40.ebuild +++ b/dev-db/mariadb/mariadb-10.2.40.ebuild @@ -788,18 +788,33 @@ pkg_postinst() { pkg_config() { _getoptval() { local section="${1}" - local flag="--${2}=" + local option="--${2}" local extra_options="${3}" local cmd=( "${my_print_defaults_binary}" "${extra_options}" "${section}" ) - local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") ) - if [[ ${#results[@]} -gt 0 ]] ; then - # When option is set multiple times only return last value - echo "${results[-1]}" + local values=() + local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) + for parameter in "${parameters[@]}" + do + # my_print_defaults guarantees output of options, one per line, + # in the form that they would be specified on the command line. + # So checking for --option=* should be safe. + case ${parameter} in + ${option}=*) + values+=( "${parameter#*=}" ) + ;; + esac + done + + if [[ ${#values[@]} -gt 0 ]] ; then + # Option could have been set multiple times + # in which case only the last occurrence + # contains the current value + echo "${values[-1]}" fi } diff --git a/dev-db/mariadb/mariadb-10.3.31.ebuild b/dev-db/mariadb/mariadb-10.3.31.ebuild index d3463517487d..cbbc8dfba20d 100644 --- a/dev-db/mariadb/mariadb-10.3.31.ebuild +++ b/dev-db/mariadb/mariadb-10.3.31.ebuild @@ -779,18 +779,33 @@ pkg_postinst() { pkg_config() { _getoptval() { local section="${1}" - local flag="--${2}=" + local option="--${2}" local extra_options="${3}" local cmd=( "${my_print_defaults_binary}" "${extra_options}" "${section}" ) - local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") ) - if [[ ${#results[@]} -gt 0 ]] ; then - # When option is set multiple times only return last value - echo "${results[-1]}" + local values=() + local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) + for parameter in "${parameters[@]}" + do + # my_print_defaults guarantees output of options, one per line, + # in the form that they would be specified on the command line. + # So checking for --option=* should be safe. + case ${parameter} in + ${option}=*) + values+=( "${parameter#*=}" ) + ;; + esac + done + + if [[ ${#values[@]} -gt 0 ]] ; then + # Option could have been set multiple times + # in which case only the last occurrence + # contains the current value + echo "${values[-1]}" fi } diff --git a/dev-db/mariadb/mariadb-10.4.21.ebuild b/dev-db/mariadb/mariadb-10.4.21.ebuild index 2c6e7495a0ff..e41458e1ca60 100644 --- a/dev-db/mariadb/mariadb-10.4.21.ebuild +++ b/dev-db/mariadb/mariadb-10.4.21.ebuild @@ -800,18 +800,33 @@ pkg_postinst() { pkg_config() { _getoptval() { local section="${1}" - local flag="--${2}=" + local option="--${2}" local extra_options="${3}" local cmd=( "${my_print_defaults_binary}" "${extra_options}" "${section}" ) - local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") ) - if [[ ${#results[@]} -gt 0 ]] ; then - # When option is set multiple times only return last value - echo "${results[-1]}" + local values=() + local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) + for parameter in "${parameters[@]}" + do + # my_print_defaults guarantees output of options, one per line, + # in the form that they would be specified on the command line. + # So checking for --option=* should be safe. + case ${parameter} in + ${option}=*) + values+=( "${parameter#*=}" ) + ;; + esac + done + + if [[ ${#values[@]} -gt 0 ]] ; then + # Option could have been set multiple times + # in which case only the last occurrence + # contains the current value + echo "${values[-1]}" fi } diff --git a/dev-db/mariadb/mariadb-10.5.12.ebuild b/dev-db/mariadb/mariadb-10.5.12.ebuild index 633f14472c20..845b70ab1fb2 100644 --- a/dev-db/mariadb/mariadb-10.5.12.ebuild +++ b/dev-db/mariadb/mariadb-10.5.12.ebuild @@ -794,18 +794,33 @@ pkg_postinst() { pkg_config() { _getoptval() { local section="${1}" - local flag="--${2}=" + local option="--${2}" local extra_options="${3}" local cmd=( "${my_print_defaults_binary}" "${extra_options}" "${section}" ) - local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") ) - if [[ ${#results[@]} -gt 0 ]] ; then - # When option is set multiple times only return last value - echo "${results[-1]}" + local values=() + local parameters=( $(eval "${cmd[@]}" 2>/dev/null) ) + for parameter in "${parameters[@]}" + do + # my_print_defaults guarantees output of options, one per line, + # in the form that they would be specified on the command line. + # So checking for --option=* should be safe. + case ${parameter} in + ${option}=*) + values+=( "${parameter#*=}" ) + ;; + esac + done + + if [[ ${#values[@]} -gt 0 ]] ; then + # Option could have been set multiple times + # in which case only the last occurrence + # contains the current value + echo "${values[-1]}" fi } |