diff options
author | Ethan Sommer <e5ten.arch@gmail.com> | 2019-08-22 11:58:47 -0400 |
---|---|---|
committer | Ethan Sommer <e5ten.arch@gmail.com> | 2019-08-22 11:58:47 -0400 |
commit | 6feff5a554da8ccc36066b2b37d40494e198d251 (patch) | |
tree | 79fc47941d769528454a99bf69df6525c63c05fb | |
parent | b0b2c625ed413d85422f3c7287827c93cad55e86 (diff) |
simplify grouping of split packages
-rwxr-xr-x | pacaur | 20 |
1 files changed, 3 insertions, 17 deletions
@@ -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 |