commit: 51b5d26d5fddcffc9f89a4e5256c457182bf47c8
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 11 03:11:28 2019 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Mon Mar 11 04:56:25 2019 +0000
URL: https://gitweb.gentoo.org/proj/eselect-rust.git/commit/?id=51b5d26d
find_targets(): sort by version
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
rust.eselect.in | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/rust.eselect.in b/rust.eselect.in
index 0ecf87a..311d8c0 100644
--- a/rust.eselect.in
+++ b/rust.eselect.in
@@ -38,12 +38,32 @@ find_missing_broken_symlinks() {
# in "${ENV_D_PATH}/rust" directory
# this function prints list of $pkgname-$pkgver values
find_targets() {
- local f
+ local f fn
local -a providers
+ local -a providers_unsorted
+ local -a providers_sorted
for f in "${ENV_D_PATH}"/rust/provider-*; do
[[ -f ${f} ]] || continue
- providers=("${providers[@]}" "${f##*/provider-}")
+ fn="${f##*/provider-}"
+ if [[ "${fn}" == rust-bin-* ]]; then
+ providers_unsorted+=( "${fn##rust-bin-}-mysortA" )
+ elif [[ "${fn}" == rust-* ]]; then
+ providers_unsorted+=( "${fn##rust-}-mysortZ" )
+ else
+ die -q "Unsupported rust provider file '${f}' found."
+ fi
+ done
+
+ IFS=$'\n' LC_COLLATE=C providers_sorted=( $(sort
<<<"${providers_unsorted[*]}") )
+
+ for fn in "${providers_sorted[@]}"; do
+ if [[ "${fn}" == *-mysortA ]]; then
+ providers+=( "rust-bin-${fn%%-mysortA}" )
+ else
+ providers+=( "rust-${fn%%-mysortZ}" )
+ fi
done
+
echo "${providers[@]}"
}