]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
bash-completion: lslogins: add missing completion file
authorSami Kerola <kerolasa@iki.fi>
Sun, 13 Mar 2016 10:31:47 +0000 (10:31 +0000)
committerKarel Zak <kzak@redhat.com>
Mon, 14 Mar 2016 12:15:14 +0000 (13:15 +0100)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
bash-completion/Makemodule.am
bash-completion/lslogins [new file with mode: 0755]

index e4196a3de6ac8df91467e1c4faa0e8ebf2bafd7b..9479087b11e0eab4d36bad032749b968062d0296 100644 (file)
@@ -150,6 +150,9 @@ endif
 if BUILD_LAST
 dist_bashcompletion_DATA += bash-completion/last
 endif
+if BUILD_LSLOGINS
+dist_bashcompletion_DATA += bash-completion/lslogins
+endif
 if BUILD_NEWGRP
 dist_bashcompletion_DATA += bash-completion/newgrp
 endif
diff --git a/bash-completion/lslogins b/bash-completion/lslogins
new file mode 100755 (executable)
index 0000000..967b644
--- /dev/null
@@ -0,0 +1,76 @@
+_lslogins_module()
+{
+       local cur prev OPTS LSLOGINS_COLS_ALL
+       COMPREPLY=()
+       cur="${COMP_WORDS[COMP_CWORD]}"
+       prev="${COMP_WORDS[COMP_CWORD-1]}"
+       LSLOGINS_COLS_ALL="
+               USER UID GECOS HOMEDIR SHELL NOLOGIN PWD-LOCK PWD-EMPTY
+               PWD-DENY GROUP GID SUPP-GROUPS SUPP-GIDS LAST-LOGIN LAST-TTY
+               LAST-HOSTNAME FAILED-LOGIN FAILED-TTY HUSHED PWD-WARN
+               PWD-CHANGE PWD-MIN PWD-MAX PWD-EXPIR CONTEXT PROC
+       "
+       case $prev in
+               '-g'|'--groups')
+                       COMPREPLY=( $(compgen -W "$(getent group | awk -F: '{print $1}')" -- $cur) )
+                       return 0
+                       ;;
+               '-l'|'--logins')
+                       COMPREPLY=( $(compgen -W "$(getent passwd | awk -F: '{print $1}')" -- $cur) )
+                       return 0
+                       ;;
+               '--time-format')
+                       COMPREPLY=( $(compgen -W "short full iso" -- $cur) )
+                       return 0
+                       ;;
+               '--wtmp-file'|'--btmp-file')
+                       local IFS=$'\n'
+                       compopt -o filenames
+                       COMPREPLY=( $(compgen -f -- $cur) )
+                       return 0
+                       ;;
+               '-o'|'--output')
+                       local prefix realcur LSLOGINS_COLS
+                       realcur="${cur##*,}"
+                       prefix="${cur%$realcur}"
+                       for WORD in $LSLOGINS_COLS_ALL; do
+                               if ! [[ $prefix == *"$WORD"* ]]; then
+                                       LSLOGINS_COLS="$WORD $LSLOGINS_COLS"
+                               fi
+                       done
+                       compopt -o nospace
+                       COMPREPLY=( $(compgen -P "$prefix" -W "$LSLOGINS_COLS" -S ',' -- $realcur) )
+                       return 0
+                       ;;
+               '-h'|'--help'|'-V'|'--version')
+                       return 0
+                       ;;
+       esac
+       COMPREPLY=( $(compgen -W "
+                       --acc-expiration
+                       --colon-separate
+                       --export
+                       --failed
+                       --supp-groups
+                       --groups
+                       --last
+                       --logins
+                       --newline
+                       --noheadings
+                       --notruncate
+                       --output
+                       --pwd
+                       --raw
+                       --system-accs
+                       --time-format
+                       --user-accs
+                       --context
+                       --print0
+                       --wtmp-file
+                       --btmp-file
+                       --help
+                       --version
+               " -- $cur) )
+       return 0
+}
+complete -F _lslogins_module lslogins