Skip to content

Commit e248708

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

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

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
@@ -135,10 +135,13 @@ set -u
135135
# Any of the below steps could fail
136136
trap save_failure_logs ERR
137137

138+
read -ra package_array <<< "$package_list"
139+
138140
# Install previous release
139-
echo "$package_list" | xargs sudo "$pkg_cmd" "$pkg_cmd_options" install ||
141+
if sudo "$pkg_cmd" "$pkg_cmd_options" install "${package_array[@]}"; then
140142
bb_log_err "installation of a previous release failed, see the output above"
141-
#fi
143+
save_failure_logs
144+
fi
142145

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

178181
rpm_setup_bb_galera_artifacts_mirror
179182
rpm_setup_bb_artifacts_mirror
180183
if [[ $test_type == "major" ]]; then
181184
# major upgrade (remove then install)
182-
echo "$package_list" | xargs sudo "$pkg_cmd" "$pkg_cmd_options" install
185+
sudo "$pkg_cmd" "$pkg_cmd_options" install "${package_array[@]}"
183186
else
184187
# minor upgrade (upgrade works)
185-
echo "$package_list" | xargs sudo "$pkg_cmd" "$pkg_cmd_options" "$pkg_cmd_upgrade"
188+
sudo "$pkg_cmd" "$pkg_cmd_options" "$pkg_cmd_upgrade" "${package_array[@]}"
186189
fi
187190
# set +e
188191

0 commit comments

Comments
 (0)