X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=shell-completion%2Fbash%2Fjournalctl;h=e4b2f4ac84e82f823f50736196e36f8116dfdb5b;hp=5ab59c99404bb468c7761bcbb1bb4b1fa5a747d4;hb=6da49b8b2f78fd74bb33de961ef8a4c7f727b822;hpb=3f3a438f58d7b1d2ba2b44d6d356fb1eaa65b66a diff --git a/shell-completion/bash/journalctl b/shell-completion/bash/journalctl index 5ab59c994..e4b2f4ac8 100644 --- a/shell-completion/bash/journalctl +++ b/shell-completion/bash/journalctl @@ -18,9 +18,10 @@ # along with systemd; If not, see . __contains_word () { - local word=$1; shift - for w in $*; do [[ $w = $word ]] && return 0; done - return 1 + local w word=$1; shift + for w in "$@"; do + [[ $w = "$word" ]] && return + done } __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} @@ -37,23 +38,30 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} _journalctl() { local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} local -A OPTS=( - [STANDALONE]='-a --all --full - --system --user - -b --this-boot --disk-usage -f --follow --header + [STANDALONE]='-a --all --full --system --user + --disk-usage -f --follow --header -h --help -l --local --new-id128 -m --merge --no-pager --no-tail -q --quiet --setup-keys --this-boot --verify - --version --list-catalog --update-catalog' - [ARG]='-D --directory -F --field -o --output -u --unit --user-unit' + --version --list-catalog --update-catalog --list-boots' + [ARG]='-b --boot --this-boot -D --directory --file -F --field + -o --output -u --unit --user-unit' [ARGUNKNOWN]='-c --cursor --interval -n --lines -p --priority --since --until --verify-key' ) if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then case $prev in + --boot|--this-boot|-b) + comps=$(journalctl -F '_BOOT_ID' 2>/dev/null) + ;; --directory|-D) comps=$(compgen -d -- "$cur") compopt -o filenames ;; + --file) + comps=$(compgen -f -- "$cur") + compopt -o filenames + ;; --output|-o) comps='short short-monotonic verbose export json cat' ;;