foot/completions/bash/footclient
Craig Barnes 5dca0458a0 log: add LOG_CLASS_NONE and use as initializer for log_level
This means that logging will be completely disabled until log_init()
has been called, which is useful to prevent log spam when running
UNITTEST{} blocks in debug builds.

Note that this doesn't change the default log level at runtime, which
was already being set to LOG_CLASS_INFO in main.c and client.c.

The new log level is also exposed to the command-line interface as
`--log-level=none`, which allows disabling logging entirely.
2021-06-26 22:15:09 +01:00

75 lines
2.5 KiB
Text

# Bash completion script for footclient
_footclient()
{
COMPREPLY=()
local cur prev flags word commands match previous_words i offset
flags=(
"--app-id"
"--fullscreen"
"--help"
"--hold"
"--login-shell"
"--log-level"
"--log-colorize"
"--maximized"
"--override"
"--server-socket"
"--term"
"--title"
"--version"
"--window-size-pixels"
"--window-size-chars"
"--working-directory"
)
flags="${flags[@]}"
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
# check if positional argument is completed
previous_words=( "${COMP_WORDS[@]}" )
unset previous_words[-1]
commands=$(compgen -c | grep -vFx "$(compgen -k)" | grep -vE '^([.:[]|footclient)$' | sort -u)
i=0
for word in "${previous_words[@]}" ; do
match=$(printf "$commands" | grep -Fx "$word" 2>/dev/null)
if [[ ! -z "$match" ]] ; then
if [[ ${COMP_WORDS[i-1]} =~ ^(--app-id|--log-level|--server-socket|--term|--title|--window-size-pixels|--window-size-chars|--working-directory)$ ]] ; then
(( i++ ))
continue
fi
# positional argument found
offset=$i
fi
(( i++ ))
done
if [[ ! -z "$offset" ]] ; then
# depends on bash_completion being available
declare -F _command_offset >/dev/null || return 1
_command_offset $offset
elif [[ ${cur} == --* ]] ; then
COMPREPLY=( $(compgen -W "${flags}" -- ${cur}) )
elif [[ ${prev} == '--server-socket' ]] ; then
compopt -o default
elif [[ ${prev} == '--working-directory' ]] ; then
compopt -o dirnames
elif [[ ${prev} == '--term' ]] ; then
# check if toe is available
which toe > /dev/null || return 1
COMPREPLY=( $(compgen -W "$(toe -a | awk '$1 ~ /[+]/ {next}; {print $1}')" -- ${cur}) )
elif [[ ${prev} == '--log-level' ]] ; then
COMPREPLY=( $(compgen -W "none error warning info" -- ${cur}) )
elif [[ ${prev} == '--log-colorize' ]] ; then
COMPREPLY=( $(compgen -W "never always auto" -- ${cur}) )
elif [[ ${prev} =~ ^(--app-id|--help|--override|--title|--version|--window-size-chars|--window-size-pixels|)$ ]] ; then
: # don't autocomplete for these flags
else
# complete commands from $PATH
COMPREPLY=( $(compgen -c ${cur}) )
fi
return 0
}
complete -F _footclient footclient