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=1fca5ad31b54285a54070be7aaa1e1f0d4a63d8d;hb=becad8f1ed696433b9841cbb9c4603c303338d30;hpb=d611dadcc74db10ba533ee6859308f5fc505aee1 diff --git a/shell-completion/bash/journalctl b/shell-completion/bash/journalctl index 1fca5ad31..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,22 +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 - -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' ;; @@ -60,10 +69,10 @@ _journalctl() { comps=${__journal_fields[*]} ;; --unit|-u) - comps=$(journalctl -F '_SYSTEMD_UNIT') + comps=$(journalctl -F '_SYSTEMD_UNIT' 2>/dev/null) ;; --user-unit) - comps=$(journalctl -F '_SYSTEMD_USER_UNIT') + comps=$(journalctl -F '_SYSTEMD_USER_UNIT' 2>/dev/null) ;; *) return 0