diff options
-rwxr-xr-x | scripts/addToolVersion.sh | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/scripts/addToolVersion.sh b/scripts/addToolVersion.sh index 0258cdfc..5209f6bf 100755 --- a/scripts/addToolVersion.sh +++ b/scripts/addToolVersion.sh @@ -55,13 +55,14 @@ doHelp() { # $1 : version string to add addToolVersion() { local version="$1" - local file + local file="$2" local config_ver_option local exp_obs_prompt local deps v ver_M ver_m ver_p local SedExpr1 SedExpr2 - file="config/${tool_prefix}/${tool}.in" + [ -f "${file}" ] || return 0 + v=$(echo "${version}" |"${sed}" -r -e 's/-/_/g; s/\./_/g;') config_ver_option="${cat}_V_${v}" @@ -70,9 +71,11 @@ addToolVersion() { # to try adding a new version if the one he/she wants is not listed. # But it can be the case where the version is hidden behind either one # of EXPERIMENTAL or OBSOLETE, so warn if the version is already listed. - if (GREP_OPTIONS= grep -E "^config ${config_ver_option}$" "${file}" >/dev/null 2>&1); then + if grep -E "^config ${config_ver_option}$" "${file}" >/dev/null 2>&1; then echo "'${tool}': version '${version}' already present:" - GREP_OPTIONS= grep -A3 -B0 -E "^config ${config_ver_option}$" "${file}" + grep -A1 -B0 -n \ + -E "^(config ${config_ver_option}| {4}prompt \"${version}\")$" \ + "${file}" /dev/null return 0 fi @@ -180,7 +183,11 @@ while [ $# -gt 0 ]; do # Version string: *) [ -n "${tool}" ] || { doHelp; exit 1; } - addToolVersion "$1" + file_base="config/${tool_prefix}/${tool}.in" + # Components have their version selection either + # in the .in or the .in.2 file. Handle both. + addToolVersion "$1" "${file_base}" + addToolVersion "$1" "${file_base}.2" ;; esac shift |