Support Bash completions for short option group in journalctl (#40214)
Currently, the Bash completions for journalctl tries to match the previous word _**exactly**_, which leads to the following issue: `journalctl -u dock` correctly auto completes to `journalctl -u docker.service`, but `journalctl -eu` provides no completions at all, which is a shame since I never use the `-u` option alone (almost always `-eu` or `-efu`, I wish the `-e` option was the default but I digress). The proposed solution is to assume words that start with only a single dash and consist of only letters are short option groups and handle them as if the previous word was the short option using the last character, e.g. `-efu` -> `-u`.
This commit is contained in:
@@ -65,6 +65,13 @@ _journalctl() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
# If the previous word looks like a short options group,
|
||||
# handle it as if it were just the last short option.
|
||||
# e.g. "-aefu" -> "-u"
|
||||
if [[ "$prev" =~ ^-[a-zA-Z]{2,}$ ]]; then
|
||||
prev="-${prev:(-1)}"
|
||||
fi
|
||||
|
||||
if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then
|
||||
case $prev in
|
||||
--boot|-b)
|
||||
|
||||
Reference in New Issue
Block a user