From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:master commit in: bin/install-qa-check.d/
Date: Fri, 30 May 2025 07:30:43 +0000 (UTC) [thread overview]
Message-ID: <1748590231.f808b7d878041dbba66418e6b9ee0b1567c13471.sam@gentoo> (raw)
commit: f808b7d878041dbba66418e6b9ee0b1567c13471
Author: Kerin Millar <kfm <AT> plushkava <DOT> net>
AuthorDate: Wed Jul 24 15:24:47 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri May 30 07:30:31 2025 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=f808b7d8
60bash-completion: refrain from using has() for better performance
Rather than use has(), define associative arrays to keep track of the
seen completions and file basenames. Also, correct the broken array
length checks.
Signed-off-by: Kerin Millar <kfm <AT> plushkava.net>
Signed-off-by: Sam James <sam <AT> gentoo.org>
bin/install-qa-check.d/60bash-completion | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/bin/install-qa-check.d/60bash-completion b/bin/install-qa-check.d/60bash-completion
index d3cb52d1c1..815ea55763 100644
--- a/bin/install-qa-check.d/60bash-completion
+++ b/bin/install-qa-check.d/60bash-completion
@@ -54,10 +54,9 @@ bashcomp_check() {
_have ${1} && have=yes
}
- local f c completions
- local all_compls=()
- local all_files=()
- local qa_warnings=()
+ local -A seen_completion seen_file
+ local -a completions qa_warnings
+ local f c
for f in "${instcompdir}"/*; do
# ignore directories and other non-files
@@ -76,7 +75,7 @@ bashcomp_check() {
unset 'completions[0]'
fi
- if [[ -z ${completions[@]} ]]; then
+ if (( ! ${#completions[@]} )); then
continue
fi
@@ -86,28 +85,28 @@ bashcomp_check() {
"${f##*/}: absolute paths can not be used for completions (on '${c}')."
)
else
- all_compls+=( "${c}" )
+ seen_completion[$c]=1
fi
done
- if ! has "${f##*/}" "${all_compls[@]}"; then
+ if [[ ! ${seen_completion[${f##*/}]} ]]; then
qa_warnings+=(
"${f##*/}: incorrect name, no completions for '${f##*/}' command defined."
)
fi
- all_files+=( "${f##*/}" )
+ seen_file[${f##*/}]=1
done
- for c in "${all_compls[@]}"; do
- if ! has "${c}" "${all_files[@]}"; then
+ for c in "${!seen_completion[@]}"; do
+ if [[ ! ${seen_file[$c]} ]]; then
qa_warnings+=(
"${c}: missing alias (symlink) for completed command."
)
fi
done
- if [[ -n ${qa_warnings[@]} ]]; then
+ if (( ${#qa_warnings[@]} )); then
eqawarn "QA Notice: Problems with installed bash completions were found:"
eqawarn
for c in "${qa_warnings[@]}"; do
next reply other threads:[~2025-05-30 7:30 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-30 7:30 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-06-28 2:30 [gentoo-commits] proj/portage:master commit in: bin/install-qa-check.d/ Sam James
2025-06-28 2:30 Sam James
2025-06-09 2:51 Sam James
2025-06-05 11:22 Sam James
2025-06-05 11:22 Sam James
2025-06-05 11:22 Sam James
2025-06-05 11:22 Sam James
2025-06-05 3:07 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:37 Sam James
2025-05-30 7:36 Sam James
2025-05-30 7:36 Sam James
2025-05-30 7:36 Sam James
2025-05-30 7:36 Sam James
2025-04-24 22:12 Sam James
2025-01-06 10:19 Ulrich Müller
2024-09-17 14:32 Matt Turner
2024-09-17 14:32 Matt Turner
2024-09-17 14:32 Matt Turner
2024-09-17 14:32 Matt Turner
2024-09-09 23:49 Sam James
2024-05-22 16:56 Sam James
2024-05-17 6:28 Sam James
2024-04-25 2:59 Mike Gilbert
2023-07-29 3:57 Sam James
2023-06-29 8:22 Sam James
2023-05-11 1:24 Sam James
2023-05-11 1:24 Sam James
2023-05-11 1:24 Sam James
2023-05-11 1:24 Sam James
2023-05-11 1:24 Sam James
2023-05-11 1:24 Sam James
2023-04-07 10:41 Sam James
2023-02-28 3:10 Sam James
2023-02-27 4:43 Sam James
2023-02-26 20:22 Sam James
2023-02-19 12:23 Sam James
2023-02-17 9:12 Sam James
2023-02-17 9:12 Sam James
2022-11-09 2:29 Sam James
2022-11-09 2:25 Sam James
2022-11-09 2:25 Sam James
2022-11-09 2:25 Sam James
2022-11-09 2:25 Sam James
2022-11-09 2:25 Sam James
2022-11-08 23:51 Sam James
2022-10-27 23:37 Sam James
2022-10-27 23:37 Sam James
2022-10-27 23:37 Sam James
2022-10-11 19:18 Sam James
2022-10-11 19:18 Sam James
2022-10-11 19:18 Sam James
2022-08-19 0:09 Sam James
2022-08-14 20:43 Sam James
2022-08-13 17:30 Sam James
2022-08-10 4:36 Sam James
2022-08-10 4:36 Sam James
2022-08-01 22:39 Sam James
2022-08-01 22:39 Sam James
2022-08-01 22:39 Sam James
2022-07-28 6:32 Fabian Groffen
2022-07-27 8:18 Fabian Groffen
2022-07-27 8:18 Fabian Groffen
2022-05-15 1:02 Sam James
2022-05-15 1:02 Sam James
2022-05-07 17:15 Mike Gilbert
2022-04-28 15:50 Sam James
2022-04-12 2:00 Sam James
2022-04-12 2:00 Sam James
2022-04-12 2:00 Sam James
2022-04-12 2:00 Sam James
2022-04-12 2:00 Sam James
2022-04-12 2:00 Sam James
2022-04-12 2:00 Sam James
2022-04-12 2:00 Sam James
2022-04-10 17:20 Sam James
2022-04-05 4:33 Sam James
2019-11-03 20:15 Zac Medico
2019-11-03 20:15 Zac Medico
2019-11-03 20:02 Zac Medico
2019-11-03 19:45 Zac Medico
2019-05-20 5:01 Zac Medico
2019-05-20 4:41 Zac Medico
2018-10-06 1:15 Zac Medico
2018-09-04 21:16 Michał Górny
2018-08-07 18:49 Zac Medico
2018-08-07 18:49 Zac Medico
2018-08-04 19:36 Zac Medico
2018-07-28 6:41 Zac Medico
2018-01-26 6:40 Michał Górny
2017-10-16 17:21 Zac Medico
2017-08-02 7:24 Zac Medico
2016-06-02 6:12 Zac Medico
2016-06-02 1:40 Zac Medico
2016-05-12 22:09 Mike Frysinger
2016-05-12 21:36 Mike Frysinger
2016-05-11 17:55 Mike Frysinger
2015-11-11 0:56 Mike Frysinger
2015-05-26 3:46 Mike Frysinger
2015-05-04 5:09 Zac Medico
2015-04-20 5:36 Michał Górny
2014-12-02 18:44 Brian Dolbec
2014-11-19 23:26 Michał Górny
2014-10-27 19:28 Zac Medico
2014-10-27 19:28 Zac Medico
2014-10-19 21:11 Brian Dolbec
2014-09-26 2:17 Brian Dolbec
2014-09-26 2:17 Brian Dolbec
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1748590231.f808b7d878041dbba66418e6b9ee0b1567c13471.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox