Skip to content

Commit d0147de

Browse files
committed
rpm install/upgrade - remove xargs
echo $v | sudo xargs .. is a antipattern, just use bash arrays.
1 parent e0209ad commit d0147de

2 files changed

Lines changed: 14 additions & 15 deletions

File tree

scripts/rpm-install.sh

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,13 @@ rpm_setup_bb_artifacts_mirror
4444
rpm_pkg_makecache
4545

4646
# install all packages
47-
pkg_list=$(rpm_repoquery) ||
48-
bb_log_err "Unable to retrieve package list from repository"
47+
read -ra package_array = <<< "$(rpm_repoquery)"
4948

50-
# ID_LIKE may not exist
51-
set +u
52-
if [[ $ID_LIKE =~ ^suse* ]]; then
53-
echo "$pkg_list" | xargs sudo "$pkg_cmd" -n install
54-
else
55-
echo "$pkg_list" | xargs sudo "$pkg_cmd" -y install
49+
if [ ${#package_array[@]} -eq 0 ]; then
50+
bb_log_err "Unable to retrieve package list from repository"
5651
fi
57-
set -u
52+
53+
sudo "$pkg_cmd" -n install "${package_array[@]}"
5854

5955
sh -c 'g=/usr/lib*/galera*/libgalera_smm.so; echo -e "[galera]\nwsrep_provider=$g"' | sudo tee /etc/my.cnf.d/galera.cnf
6056

scripts/rpm-upgrade.sh

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,13 @@ set -u
139139
# Any of the below steps could fail
140140
trap save_failure_logs ERR
141141

142+
read -ra package_array <<< "$package_list"
143+
142144
# Install previous release
143-
echo "$package_list" | xargs sudo "$pkg_cmd" "$pkg_cmd_options" install ||
145+
if sudo "$pkg_cmd" "$pkg_cmd_options" install "${package_array[@]}"; then
144146
bb_log_err "installation of a previous release failed, see the output above"
145-
#fi
147+
save_failure_logs
148+
fi
146149

147150
# Start the server, check that it is working and create some structures
148151
#
@@ -174,19 +177,19 @@ fi
174177
# //TEMP upgrade does not work without this but why? Can't we fix it?
175178
if [[ $test_type == "major" ]]; then
176179
bb_log_info "remove old packages for major upgrade"
177-
packages_to_remove=$(rpm -qa | grep 'MariaDB-' | awk -F'-' '{print $1"-"$2}')
178-
echo "$packages_to_remove" | xargs sudo "$pkg_cmd" "$pkg_cmd_options" remove
180+
readarray -t package_array <<< "$(rpm -qa | grep 'MariaDB-' | awk -F'-' '{print $1"-"$2}')"
181+
sudo "$pkg_cmd" "$pkg_cmd_options" remove "${package_array[@]}"
179182
rpm -qa | grep -iE 'maria|mysql' || true
180183
fi
181184

182185
rpm_setup_bb_galera_artifacts_mirror
183186
rpm_setup_bb_artifacts_mirror
184187
if [[ $test_type == "major" ]]; then
185188
# major upgrade (remove then install)
186-
echo "$package_list" | xargs sudo "$pkg_cmd" "$pkg_cmd_options" install
189+
sudo "$pkg_cmd" "$pkg_cmd_options" install "${package_array[@]}"
187190
else
188191
# minor upgrade (upgrade works)
189-
echo "$package_list" | xargs sudo "$pkg_cmd" "$pkg_cmd_options" "$pkg_cmd_upgrade"
192+
sudo "$pkg_cmd" "$pkg_cmd_options" "$pkg_cmd_upgrade" "${package_array[@]}"
190193
fi
191194
# set +e
192195

0 commit comments

Comments
 (0)