@@ -108,38 +108,48 @@ update_library_version_pipfile() {
108
108
fi
109
109
110
110
# 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
+
112
113
if [[ $current_line =~ ^\" ? $lib \" ? [[:space:]]* = [[:space:]]* \" ? ([=><! ~]* )? ([0-9]+ (\. [0-9]+)* )\" ? $ ]]; then
113
114
current_qualifier=" ${BASH_REMATCH[1]} "
114
115
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
115
123
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=$?
119
127
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
122
131
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)
137
149
fi
138
- else
139
- echo " $lib in $file is already up-to-date or has a higher version ($current_ver )."
140
150
fi
141
151
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 ) ."
143
153
fi
144
154
}
145
155
@@ -173,7 +183,7 @@ update_library_version_requirements() {
173
183
if [ " $comparison_result " -eq 0 ]; then
174
184
# Update to the new version if it is higher
175
185
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 "
177
187
echo " Updated $lib in $file to version ${new_ver} "
178
188
else
179
189
echo " $lib in $file is already up-to-date or has a higher version ($current_ver )."
0 commit comments