summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEthan Sommer <e5ten.arch@gmail.com>2019-08-22 11:58:47 -0400
committerEthan Sommer <e5ten.arch@gmail.com>2019-08-22 11:58:47 -0400
commit6feff5a554da8ccc36066b2b37d40494e198d251 (patch)
tree79fc47941d769528454a99bf69df6525c63c05fb
parentb0b2c625ed413d85422f3c7287827c93cad55e86 (diff)
simplify grouping of split packages
-rwxr-xr-xpacaur20
1 files changed, 3 insertions, 17 deletions
diff --git a/pacaur b/pacaur
index e03426e..14520b0 100755
--- a/pacaur
+++ b/pacaur
@@ -1176,26 +1176,12 @@ MakePkgs() {
# split packages support
for i in "${!pkgsbase[@]}"; do
for j in "${!deps[@]}"; do
- [[ "${pkgsbase[$i]}" = "${pkgsbase[$j]}" && " ${pkgsdeps[*]} " != *" ${deps[$j]} "* ]] &&
- pkgsdeps+=("${deps[$j]}")
- done
- pkgsdeps+=('%')
- done
- for i in "${!pkgsdeps[@]}"; do
- [[ "${pkgsdeps[i]}" != '%' ]] || continue
- for j in "${!pkgsdeps[@]}"; do
- ((j > i)) || continue
- if [[ "${pkgsdeps[j]}" != '%' ]]; then
- pkgsdeps[i]="${pkgsdeps[i]},${pkgsdeps[j]}"; unset 'pkgsdeps[j]'
- else
- break
+ if [[ "${pkgsbase[i]}" = "${pkgsbase[j]}" && ! "${pkgsdeps[*]}" =~ ",${deps[j]}"(,|$) ]]; then
+ pkgsdeps[i]+=",${deps[j]}"
fi
done
done
- for i in "${!pkgsdeps[@]}"; do
- [[ "${pkgsdeps[i]}" != '%' ]] || unset 'pkgsdeps[i]'
- done
- pkgsdeps=("${pkgsdeps[@]}") # remove empty array indices
+ pkgsdeps=("${pkgsdeps[@]#,}") # remove empty array indices and leading ','
# reverse deps order
for i in "${!basepkgs[@]}"; do