Skip to content

Commit f77a020

Browse files
Merge pull request #671 from paulovmr/RHOAIENG-11300
RHOAIENG-11300: Improve the library upgrade script for alternative sources
2 parents c8c942b + f88d643 commit f77a020

File tree

1 file changed

+34
-24
lines changed

1 file changed

+34
-24
lines changed

scripts/update_library_version.sh

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -108,38 +108,48 @@ update_library_version_pipfile() {
108108
fi
109109

110110
# Extract the current version and qualifier from the Pipfile
111-
current_line=$(grep -E "^\"?$lib\"? = " "$file")
111+
current_line=$(grep -E "^\"?$lib\"?[[:space:]]*=[[:space:]]*" "$file")
112+
112113
if [[ $current_line =~ ^\"?$lib\"?[[:space:]]*=[[:space:]]*\"?([=><!~]*)?([0-9]+(\.[0-9]+)*)\"?$ ]]; then
113114
current_qualifier="${BASH_REMATCH[1]}"
114115
current_ver="${BASH_REMATCH[2]}"
116+
elif [[ $current_line =~ version[[:space:]]*=[[:space:]]*\"?([=><!~]*)?([0-9]+(\.[0-9]+)*)\" ]]; then
117+
current_qualifier="${BASH_REMATCH[1]}"
118+
current_ver="${BASH_REMATCH[2]}"
119+
else
120+
echo "$lib not found in $file."
121+
return
122+
fi
115123

116-
# Compare the current and new versions
117-
is_version_higher "$new_ver" "$current_ver"
118-
comparison_result=$?
124+
# Compare the current and new versions
125+
is_version_higher "$new_ver" "$current_ver"
126+
comparison_result=$?
119127

120-
if [ "$comparison_result" -eq 0 ]; then
121-
# Keep the original qualifier and update to the new version if it is higher
128+
if [ "$comparison_result" -eq 0 ]; then
129+
# Keep the original qualifier and update to the new version if it is higher
130+
if [[ $current_line =~ ^\"?$lib\"?[[:space:]]*=[[:space:]]*\"?([=><!~]*)?[0-9]+(\.[0-9]+)*\"?$ ]]; then
122131
new_line="${lib} = \"${current_qualifier}${new_ver}\""
123-
sed -i -E "s/^\"?$lib\"?[[:space:]]*=[[:space:]]*\"?[=><!~]*[0-9]+(\.[0-9]+)*\"?/${new_line}/" "$file"
124-
echo "Updated $lib in $file to version ${current_qualifier}${new_ver}"
125-
126-
# Handle renaming and pipenv lock, if necessary
127-
if [ "$lock_files" == "true" ]; then
128-
if [ "$is_specific" = true ]; then
129-
mv "$file" "${directory}/Pipfile"
130-
mv "${directory}/$lockfile" "${directory}/Pipfile.lock"
131-
(cd "$directory" && pipenv lock)
132-
mv "${directory}/Pipfile" "$file"
133-
mv "${directory}/Pipfile.lock" "${directory}/$lockfile"
134-
else
135-
(cd "$directory" && pipenv lock)
136-
fi
132+
sed -i -E "s|^\"?$lib\"?[[:space:]]*=[[:space:]]*\"?[=><!~]*[0-9]+(\.[0-9]+)*\"?|${new_line}|" "$file"
133+
elif [[ $current_line =~ version[[:space:]]*=[[:space:]]*\"?([=><!~]*)?([0-9]+(\.[0-9]+)*)\" ]]; then
134+
new_line=$(echo "$current_line" | sed -E "s|(version[[:space:]]*=[[:space:]]*\")([=><!~]*[0-9]+(\.[0-9]+)*)\"|\1${current_qualifier}${new_ver}\"|")
135+
sed -i "s|^$current_line|$new_line|" "$file"
136+
fi
137+
echo "Updated $lib in $file to version ${current_qualifier}${new_ver}"
138+
139+
# Handle renaming and pipenv lock, if necessary
140+
if [ "$lock_files" == "true" ]; then
141+
if [ "$is_specific" = true ]; then
142+
mv "$file" "${directory}/Pipfile"
143+
mv "${directory}/$lockfile" "${directory}/Pipfile.lock"
144+
(cd "$directory" && pipenv lock)
145+
mv "${directory}/Pipfile" "$file"
146+
mv "${directory}/Pipfile.lock" "${directory}/$lockfile"
147+
else
148+
(cd "$directory" && pipenv lock)
137149
fi
138-
else
139-
echo "$lib in $file is already up-to-date or has a higher version ($current_ver)."
140150
fi
141151
else
142-
echo "$lib not found in $file."
152+
echo "$lib in $file is already up-to-date or has a higher version ($current_ver)."
143153
fi
144154
}
145155

@@ -173,7 +183,7 @@ update_library_version_requirements() {
173183
if [ "$comparison_result" -eq 0 ]; then
174184
# Update to the new version if it is higher
175185
new_line="${lib}==${new_ver}"
176-
sed -i -E "s/^$lib==[0-9]+(\.[0-9]+)*/${new_line}/" "$file"
186+
sed -i -E "s|^$lib==[0-9]+(\.[0-9]+)*|${new_line}|" "$file"
177187
echo "Updated $lib in $file to version ${new_ver}"
178188
else
179189
echo "$lib in $file is already up-to-date or has a higher version ($current_ver)."

0 commit comments

Comments
 (0)