loginctl: add --json= and -j, decouple list-* from --output=

--output= is documented to only affect journal output in *-status.
Let's use --json= and -j standard options for list-* instead.
This commit is contained in:
Mike Yuan
2024-01-17 11:30:04 +08:00
parent 4a3e43ddc5
commit ea54517476
3 changed files with 43 additions and 35 deletions
+5 -2
View File
@@ -42,9 +42,9 @@ _loginctl () {
local -A OPTS=(
[STANDALONE]='--all -a --help -h --no-pager --version
--no-legend --no-ask-password -l --full --value'
--no-legend --no-ask-password -l --full --value -j'
[ARG]='--host -H --kill-whom --property -p --signal -s -M --machine
-n --lines -o --output -P'
-n --lines -o --output -P --json'
)
if __contains_word "$prev" ${OPTS[ARG]}; then
@@ -68,6 +68,9 @@ _loginctl () {
--output|-o)
comps=$( loginctl --output=help 2>/dev/null )
;;
--json)
comps=$( loginctl --json=help 2>/dev/null )
;;
esac
COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
return 0